10

如果您使用以下语法,一个简单的 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 上测试

4

1 回答 1

2

出于好奇,您是否有任何理由避免使用clickevent 而不是touchstart?通常,移动浏览器将click作为“触摸”事件处理。过去,我在不同设备上的触摸与点击方面遇到了麻烦(通过modernizr解决)

至少,我会绑定两个事件(clicktouchstart),这将处理移动和桌面(更新你的小提琴 - http://jsfiddle.net/srdkgL7o/

$(function(){
    $(document).on('touchstart click', '.test', function(e){
         e.stopPropagation(); //stops 'ghost clicks' (double clicking)
        alert("Clicked");
    });
});
于 2016-01-20T20:29:04.217 回答