jQuery点击不在iOS工作? [英] jQuery click not working in iOS?

查看:115
本文介绍了jQuery点击不在iOS工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在网站上添加了一些简单的javascript:

I have added some simple javascript to a site:

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

...只有当有人点击实际的锚元素按钮元素时才会在iOS中触发,或者使用游标:指针; CSS。

...and it only fires in iOS when someone clicks on an actual anchor element, button element, or on something with cursor: pointer; CSS.

具体来说,我在Bootstrap 3固定导航栏中看到了这一点菜单。当它打开时,我添加了:

Specifically, I am seeing this with the Bootstrap 3 fixed navbar menu. When it's open, I have added:

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

确保无论用户点击何处都关闭。

to ensure that it closes no matter where someone clicks.

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

This is not working in iOS (verified on iPhone 4, iPhone 6/6+ and iPads).

似乎jQuery点击事件只注册可点击元素(A,BUTTON等)或元素游标:指针; CSS或 onClick ='...某事......'甚至或 onClick ='' HTML属性。

It seems that jQuery click events only register on "clickable" elements (A, BUTTON, etc) or elements with cursor: pointer; CSS or onClick='...something...' or even or onClick='' HTML attributes.

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

So, my question. Is this just me? Does anyone else see this?

推荐答案

苹果如何处理事件

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

By design you need to use a clickable element. So yes, everyone will experience this issue unless they take care of it with a solution similar to this. If it can't be expected to be clicked then it won't be seen that way by IOS.

苹果开发者页面的摘录。

An excerpt from apples developer page.


使元素可点击

Making Elements Clickable

由于iOS上的Safari创建事件的方式要模拟一个鼠标,
你的一些元素在iOS上可能不会像预期的那样。特别是
,一些只使用mousemove处理程序的菜单,如清单
6-1,需要更改,因为iOS不会将它们识别为
可点击元素。

Because of the way Safari on iOS creates events to emulate a mouse, some of your elements may not behave as expected on iOS. In particular, some menus that only use mousemove handlers, as in Listing 6-1, need to be changed because iOS doesn’t recognize them as clickable elements.

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

Listing 6-1 A menu using a mouseover handler



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




要解决这个问题,请添加一个虚拟的onclick处理程序,onclick =void (0),所以
iOS上的Safari将span元素识别为可点击元素,如清单6-2所示

To fix this, add a dummy onclick handler, onclick = "void(0)", so that Safari on iOS recognizes the span element as a clickable element, as shown in Listing 6-2.

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

Listing 6-2 Adding an onclick handler



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

这篇关于jQuery点击不在iOS工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆