文档上的jQuery touchstart无法工作

9

如果您使用以下语法,一个简单的touchstart事件就能够工作:

http://jsfiddle.net/rwdu4hb9/
$(function(){
    $('.test').on('touchstart', function(){
        alert("Clicked");
    });
});

但是如果你想为所有使用$(document).on(..)的元素添加事件,就像这样:http://jsfiddle.net/rwdu4hb9/1/

$(function(){
    $(document).on('touchstart', '.test', function(){
        alert("Clicked");
    });
});

该事件不会被触发。 这个调用有什么问题?

在搭载 iOS 8.0.2 的 iPad 上测试过。


代码没有问题,你要在哪里进行测试? - SSA
iPad 3搭载iOS 8.0.2。 - user3631654
1个回答

2
出于好奇,您避免使用“click”事件而使用“touchstart”事件的原因是什么?通常移动浏览器会将“click”处理为“touch”事件。我过去在不同设备上遇到过触摸和点击的问题(使用modernizr解决)。
至少,我会绑定两个事件(“click”和“touchstart”),这样可以处理移动和桌面设备(更新了您的fiddle-http://jsfiddle.net/srdkgL7o/)。
$(function(){
    $(document).on('touchstart click', '.test', function(e){
         e.stopPropagation(); //stops 'ghost clicks' (double clicking)
        alert("Clicked");
    });
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接