【问题标题】:window.click does not fire on Safari for iPadwindow.click 在 iPad 版 Safari 上不触发
【发布时间】:2012-11-12 15:11:07
【问题描述】:

此代码在桌面浏览器中运行良好:

$(window).click(function() {...});

但在 iPad 上的 Safari 中,它根本不会触发。这不支持吗?当有人触摸浏览器窗口中的某处时,正确的通知方式是什么?

【问题讨论】:

    标签: javascript jquery ipad safari touch


    【解决方案1】:

    JQuery UI 支持设备的touch。 .您可以在同一组事件上绑定单击和触摸侦听器。

    $(window).bind("click touchstart", function(){...});
    

    【讨论】:

    • 感谢您的提示。顺便说一句,该事件似乎是“touchstart”而不是“touch”。我已经编辑了答案以反映正确的代码。
    【解决方案2】:

    这样试试

    var clickOrTap = ( typeof document.body.ontouchend === "undefined" ) ? 'click' : 'touchend';
    $( "body" ).on( clickOrTap, function() { ... } );
    

    它会检查设备是否有touchend 事件,如果没有则表示您在桌面上,因此侦听器将等待click。如果它定义了,那么你就在一个触摸设备上,你可以监听触摸事件。

    【讨论】:

    • 希望我能将两者都标记为答案,因为您也提供了帮助(尤其是“touchstart”与“touch”),但我认为“bind”语法更简洁。
    猜你喜欢
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 2011-08-24
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多