如何在iPhone Web应用程序中使用jQuery进行点击事件
当我使用jQuery进行简单的点击事件时,它只能用于链接。 有没有办法使其工作跨度等:
$("span.clicked").live("click", function(e){alert("span clicked!")}); $("a.clicked").live("click", function(e){alert("link clicked!")});
SPAN在Safari中工作,而不是在移动Safari(在iPhone或iPad上),而A标签在两者中都起作用。
你需要听“touchstart”和“touchend”事件。 用jQuery添加侦听器…
$('span').bind( "touchstart", function(e){alert('Span Clicked!')} );
您可能希望倾听触觉和触觉,以便您可以validation手指触摸时的目标元素与手指被移除时的目标元素是否相同。
我敢肯定有可能是一个更好的方法来做到这一点,但应该工作:)
编辑:有一个更好的办法! 请参阅https://stackoverflow.com/a/4910962/16940
我也为此而挣扎。 经过大量的讨论,试图找出问题,我遇到了一个简单的解决scheme。
如果将元素的cursor
设置为pointer
,则它会再次使用jquery的live和click事件再次发挥作用。 这可以在CSS中全局设置。
实际上,您不需要使用touchstart或touchend事件,只要“span”标记(或“a”标记之外的任何其他标记)具有以下css属性:
cursor:pointer
点击将注册
您也可以通过添加一个空的onclick属性来哄骗浏览器生成点击事件。 对于任何一种方法在任何给定的iOS更新中停止工作的腰带和大括号的方法,你可以使用这样的东西:
$("span.clicked").live("click", function(e){alert("span clicked!")}) .attr('onclick','') .css('cursor','pointer');
(假设你没有任何实际的onclick属性,你不介意消除)
我尝试了一切,没有任何技巧的工作。 事实certificate,我不能得到点击事件,因为我有我的img下的video元素。 video元素显然吃点击事件。
您可以添加一个空的onclick
属性,如下所示:
<span onclick=''>Touch or Click Me</span> jQuery('span').live('click', function() { alert('foo'); });