Javascript $(文档)。单击()在iPhone上无法正常工作。jquery
该功能在IE、Firefox和Chrome上都能完美运行,但在iPhone上,它只在点击Javascript $(文档)。单击()在iPhone上无法正常工作。jquery,javascript,jquery,iphone,click,onclick,Javascript,Jquery,Iphone,Click,Onclick,该功能在IE、Firefox和Chrome上都能完美运行,但在iPhone上,它只在点击时才起作用。点击页面(除img外的任何地方)不会触发事件 $(document).ready(function () { $(document).click(function (e) { fire(e); }); }); function fire(e) { alert('hi'); } HTML部分非常基本,不应该成为问题 有什么想法吗?改用它的jQuery移动版加入以下代码就行了 问题
时才起作用。点击页面(除img外的任何地方)不会触发事件
$(document).ready(function () {
$(document).click(function (e) {
fire(e);
});
});
function fire(e) { alert('hi'); }
HTML部分非常基本,不应该成为问题
有什么想法吗?改用它的jQuery移动版加入以下代码就行了 问题是iPhone不会引发点击事件。他们提出“接触”事件。非常感谢苹果。为什么他们不能像其他人一样保持标准呢?不管怎样,谢谢尼科的小费 归功于:
在移动iOS上,单击事件不会出现在文档正文中,因此不能与.live()事件一起使用。如果必须使用非本机的可单击元素,如div或section,则使用游标:指针在您的css中,用于在所讨论的元素上不悬停。如果这很难看,您可以查看delegate()。更改此选项:
$(document).click( function () {
对此
$(document).on('click touchstart', function () {
也许这个解决方案不适合你的工作,就像回复中描述的那样,这不是最好的解决方案。请检查其他用户的其他修复程序。简短回答:
<style>
.clickable-div
{
cursor: pointer;
}
</style>
这将在你的桌面浏览器上运行,但无论你点击多少次,iPad都无法运行
您可能会尝试将事件处理程序从单击更改为单击touchstart
——这确实会触发事件处理程序。然而,如果用户想要向上拖动页面(滚动),他们也会触发它——这是一种糟糕的用户体验。[你可能已经通过偷偷的横幅广告注意到了这种行为]
答案非常简单:只需设置css光标:指针
<style>
.clickable-div
{
cursor: pointer;
}
</style>
.可点击div
{
光标:指针;
}
对于桌面用户来说,这有一个额外的好处,即可以用手形图标来指示该区域
多亏了试试这个,它只适用于iPhone和iPod,所以你不会让chrome或firefox手机上的一切都变成蓝色
/iP/i.test(navigator.userAgent) && $('*').css('cursor', 'pointer');
基本上,在iOS上,东西在默认情况下不是“可点击的”——它们是“可触摸的”(pfffff),所以您可以通过给它们一个指针光标使它们“可点击”。完全有意义,对吧???CSSCursor:Pointer代码>是一个很好的解决方案FastClick是另一种解决方案,如果您不想要Cursor:Pointer,则不需要更改css出于某种原因,对元素执行代码>。无论如何,我现在使用fastclick来消除iOS设备上的300毫秒延迟。将此包含到您的项目中。检查github上的“自述文件”。
据我所知,在iPhone上,您实际上从未引发过点击事件。。。难道没有类似触摸的活动吗?克里斯托弗可能会。不过这只是一个示例代码。最近面对这个问题,您只需要光标:指针
,或者使用默认情况下应该有指针的元素,如a
,按钮
等。jQuery的官方移动版本是(但jQTouch也很不错)。它已经可以下载了吗?上一次我听说它在概念上仍然是无用的,它不起作用。我只包含了这个库,没有更改javascript。jQTouch似乎应该重载$(文档)。单击function.tada NO!塔达:这太可怕了——至少如果你想在任意的DIV上捕获一个“click”事件,它就是。你甚至不能在不触发事件的情况下向上拖动屏幕。与@Simon_Weaver合作。这是一个糟糕的答案。我不想听起来太刻薄,但当我尝试这样做时,行为是如此糟糕,以至于让我感到沮丧!(尽管我得到了我所期望的确切行为)幸运的是(见我的另一个答案)有一个更好的、难以置信的简单解决方案,而大多数人都认为这个答案很糟糕。这个解决方案在某些(特殊)情况下可能非常方便。想象一下,例如,你想关闭一个菜单上的移动点击这将是一个非常有效的解决方案@MrWashinton是正确的,其他用户应该为他们的过度反应感到羞愧。这是几种特定情况下唯一可以接受的方法。是的,当答案如此简单时,这是很好的:-)但是看到每个人都提出疯狂的JS解决方案,而这些解决方案并不是必需的,我从来没有想到这会是iOS 8注册点击事件所需要的黑客攻击,但我很高兴它能工作!!我只想在用户单击任意位置时关闭一个div:'(请确保您的a-tag具有href属性。否则它将不起作用。您的一行“cursor:pointer;”将给我带来提升。太棒了!谢谢!我的ipod在添加此代码后挂起。有其他方法吗?基本链接导致页面不可用错误这真是太过分了-只需cursor:pointer;
就是您所需的全部链接有时会失效。)AE:考虑如何解释这个问题是如何被这个包固定的,以及包括链接。这是最聪明和最短的选项。在很多情况下,我认为这是非常低效的,并且不考虑稍后添加的元素。(请记住,
标记首先不需要它),也不是全局性的。如果你真的选择这样做,你应该有一个css规则,比如html.cursorpointer*{cursor:pointer}
,然后使用你喜欢的方法将.cursorpointer
添加到
,最好是作为一个现代化测试
$(document).on('click', '.clickable-div', function() {
document.location = $(this).data('href');
});
<style>
.clickable-div
{
cursor: pointer;
}
</style>
/iP/i.test(navigator.userAgent) && $('*').css('cursor', 'pointer');