jQuery .on() 和 .delegate() 在 iPad 上不起作用 [英] jQuery .on() and .delegate() doesn't work on iPad

查看:30
本文介绍了jQuery .on() 和 .delegate() 在 iPad 上不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果您在台式机上尝试此代码段,则一切正常.
每当您在 iPad 上尝试时,它都不会执行任何操作.

If you try this snippet on desktop, everything works.
Whenever you try it on iPad, it won't do anything.

$('body').on('click', '#click', function() {
    alert("This alert won't work on iPad");
});

div { 
  font-size: 24px; 
}

<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()

Simple .click() handler works, but it isn't what I want. The same applies for .delegate(); and .live()

是bug还是什么?

推荐答案

这是一个 Safari 移动错误/功能:点击事件不会一直冒泡到正文.

It's a Safari mobile bug/feature : click events won't bubble all the way up to body.

添加 onclick="" 是一种已知的解决方法,但恕我直言,将您的侦听器附加到 的第一个孩子上会更容易.

Adding onclick="" is a known workaround, but IMHO it's easier to attach your listener on a first child of <body>.

参见:http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html

这篇关于jQuery .on() 和 .delegate() 在 iPad 上不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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