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');
});
虽然,它不应该有任何区别。
答
您需要绑定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
});
这就像最奇妙的是,代码是完全一样的发布。 – 2012-07-14 09:54:08
这和贴出来的不一样。 Rich与两个事件绑定“click touch”,而不仅仅是“click”。 – jfriend00 2012-07-14 09:55:04
我在测试的同时,正确的事件是“touchstart” – 2012-07-14 10:00:00