首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery .on()和.delegate()不适用于iPad

jQuery .on()和.delegate()不适用于iPad
EN

Stack Overflow用户
提问于 2012-04-15 19:09:22
回答 7查看 16.4K关注 0票数 31

如果您在桌面上尝试这个片段,一切都正常。

每当您在iPad上尝试它时,它不会做任何事情。

代码语言:javascript
运行
复制
$('body').on('click', '#click', function() {
    alert("This alert won't work on iPad");
});
代码语言:javascript
运行
复制
div { 
  font-size: 24px; 
}
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="click">Click here</div>

简单的.click()处理程序可以工作,但这不是我想要的。.delegate();.live()也是如此

是虫子什么的吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-04-15 19:55:43

这是Safari的一个移动bug/特性:单击事件不会一直泡到身体。

添加onclick=""是一种已知的解决方法,但是IMHO更容易将侦听器附加到<body>的第一个子节点上。

请参阅:del.html

票数 34
EN

Stack Overflow用户

发布于 2012-08-29 13:33:58

将iOS上主体的光标样式更改为“指针”,一切都将完美地工作。你不需要在你想点击的每个元素上添加onclick=“.

代码语言:javascript
运行
复制
<script type="text/javascript">
    $(function() {
        // The trick
        if (/ip(hone|od)|ipad/i.test(navigator.userAgent)) {
           $("body").css ("cursor", "pointer");
        }
        // The test
        $("body").on("click", "#click", function() {
            alert("This also works on iOS !");
        });
    });
</script>
<div id="click">Click here</div>

我知道你现在在想什么:“哇!”

票数 30
EN

Stack Overflow用户

发布于 2012-04-15 19:09:36

我不知道为什么它不工作,它可能是一个bug,但有一个很好的解决办法。简单地将onclick=""放到您要委派的div中,它将完美地工作。

代码语言:javascript
运行
复制
<div id="click" onclick="">Click here</div>
<script>
$("body").on("click", "#click", function() {
    alert("This works on iPad");
});
</script>

小提琴

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10165141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档