jQuery点击不工作在iOS?

我已经添加了一些简单的JavaScript到一个网站:

jQuery(document).click(function(){ alert('click'); }); 

…只有当有人点击一个实际的锚元素,button元素,或用cursor: pointer;时,才会在iOS中触发cursor: pointer; CSS。

具体来说,我看到这与Bootstrap 3固定的导航栏菜单。 当它开放时,我补充说:

 jQuery(document).click(function(){ jQuery('#navbar-collapse.collapse.in').collapse('hide'); }); 

确保无论点击何处都会closures。

这不适用于iOS(在iPhone 4,iPhone 6/6 +和iPad上validation)。

看来,jQuery点击事件只注册“可点击”元素(A,BUTTON等)或元素与cursor: pointer; CSS或onClick='...something...'或者甚至onClick='' HTML属性。

所以,我的问题。 这只是我吗? 有没有其他人看到这个?

苹果如何处理事件

按devise你需要使用一个可点击的元素。 所以是的,每个人都会遇到这个问题,除非他们用类似这样的解决scheme来处理这个问题。 如果不能期望被点击,那么IOS就不会这么看。

摘自苹果开发者页面。

使元素可点击

由于iOS上的Safari创build事件来模拟鼠标,您的某些元素在iOS上的行为可能不如预期。 特别是,一些仅使用mousemove处理程序的菜单(如清单6-1)需要更改,因为iOS不会将其识别为可点击元素。

清单6-1使用鼠标hover处理程序的菜单

 <span onmouseover = "..." onmouseout = "..." WHERE TO BUY </span> 

为了解决这个问题,添加一个虚拟onclick处理函数onclick =“void(0)”,以便iOS上的Safari将span元素识别为可点击元素,如清单6-2所示。

清单6-2添加一个onclick处理程序

 <span onmouseover = "..." onmouseout = "..." onclick = "void(0)"> WHERE TO BUY </span>