如何在iPhone Web应用程序中使用jQuery进行单击事件

Gaz*_*zer 43 iphone jquery web-applications

当我使用jQuery进行简单的点击事件时,它只适用于链接.有没有办法让它适用于跨度等:

$("span.clicked").live("click", function(e){alert("span clicked!")});

$("a.clicked").live("click", function(e){alert("link clicked!")});
Run Code Online (Sandbox Code Playgroud)

SPAN适用于Safari但不适用于Mobile Safari(在iPhone或iPad上),而A标签适用于两者.

Ply*_*ynx 128

我也在努力解决这个问题.经过大量的玩弄并试图找出问题后,我遇到了一个简单的解决方案.

如果你将元素设置cursorpointer,它会再次使用Jquery的live和click事件再次运行.这可以在CSS中全局设置.

  • 请注意,如果在悬停时执行`cursor:pointer;`它将无法工作. (6认同)
  • @Simon_Weaver`div:hover {cursor:pointer; }`不起作用,只做`div {cursor:pointer; }` (3认同)

小智 27

你需要听"touchstart"和"touchend"事件.使用jQuery添加侦听器...

$('span').bind( "touchstart", function(e){alert('Span Clicked!')} );
Run Code Online (Sandbox Code Playgroud)

您可能希望听一个触摸启动和触摸,以便您可以验证手指触摸时的目标元素与手指被移除时的目标元素相同.

我敢肯定有一个更好的方法可以做到但这应该工作:)

编辑:有一个更好的方法!请参阅/sf/answers/343767371/

  • NO NO NO NO(几乎可以肯定) - 请参阅@ Plynx的回答 (4认同)

Mon*_*Ove 21

实际上,您不需要使用touchstart或touchend事件,只要'span'标记(或除'a'标记之外的任何内容)的css属性为:

cursor:pointer
Run Code Online (Sandbox Code Playgroud)

点击将注册