jQuery的“上”移动(IOS)事件

问题描述:

我使用了“上”动态生成的跨度事件,像这样:jQuery的“上”移动(IOS)事件

$("body").on("click", "span", function(e){ 
    alert('clicked'); 
}); 

和它完美的作品。然后我在移动设备上测试了它(仅限iOS,至今) 并且它似乎没有工作!

我在想也许是因为“点击”不被识别为点击或者CSS错误,不会让点击发生,所以我尝试将一个正常的javascript事件附加到其中一个跨度,如下所示:

<span onclick="alert('hello');">hello</span> 

但这次,它的工作!

任何人都有线索?

这应该可以正常工作,所以也许你有其他一些代码搞砸了。

您也可以尝试结合触摸以及这样的:

$("body").on("click touch", "span", function(e){ 
    alert('clicked'); 
}); 

虽然,它不应该有任何区别。

+0

这就像最奇妙的是,代码是完全一样的发布。 – 2012-07-14 09:54:08

+3

这和贴出来的不一样。 Rich与两个事件绑定“click touch”,而不仅仅是“click”。 – jfriend00 2012-07-14 09:55:04

+1

我在测试的同时,正确的事件是“touchstart” – 2012-07-14 10:00:00

您需要绑定touchstart事件:

$('span').bind("touchstart", function(e) 
    { 
    // Clicked Span 
    }); 
+1

这里有一个问题,那就是:如果用户用跨度的手指滚动,事件就会被触发......它应该只会触发只需点击一下,而不是滚动。 – 2012-07-15 16:06:14

它是需要安装jQuery Mobile的,并附上 “V单击” 事件。

此外,您还需要删除“点击”事件,否则它将被调用两次。

代码示例:

$("body").on("vclick", "span", function (e){ 
    //your function here 
});