jQuery .on() 和 .delegate() 在 iPad 上不起作用 [英] jQuery .on() and .delegate() doesn't work on 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屋!