Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $(文档)。单击()在iPhone上无法正常工作。jquery_Javascript_Jquery_Iphone_Click_Onclick - Fatal编程技术网

Javascript $(文档)。单击()在iPhone上无法正常工作。jquery

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移动版加入以下代码就行了 问题

该功能在IE、Firefox和Chrome上都能完美运行,但在iPhone上,它只在点击
时才起作用。点击页面(除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),所以您可以通过给它们一个指针光标使它们“可点击”。完全有意义,对吧???

CSS
Cursor: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');