jQuery .on()和.delegate()在iPad上不起作用 [英] jQuery .on() and .delegate() doesn't work on iPad
问题描述
如果您在桌面上试用此代码段,一切正常。
每当您在 iPad 上试用它时,它都不会做任何事情。
$('body')。on('click','#click',function(){alert(This alert)将不适用于iPad);});
div {font-size:24px; }
< script src =https:// ajax .googleapis.com / ajax / libs / jquery / 2.1.1 / jquery.min.js>< / script>< div id =click>点击此处< / div>
简单 .click()
处理程序工作,但它不是我想要的。这同样适用于 .delegate();
和 .live()
这是一个bug还是什么?
这是一个Safari移动bug /功能:点击事件不会泡泡一直到身体。
添加 onclick =
是一个已知的解决方法,但恕我直言它更容易将您的听众附加到< body>
的第一个孩子。
请参阅: http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
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>
Simple .click()
handler works, but it isn't what I want. The same applies for .delegate();
and .live()
Is it a bug or something?
It's a Safari mobile bug/feature : click events won't bubble all the way up to body.
Adding onclick=""
is a known workaround, but IMHO it's easier to attach your listener on a first child of <body>
.
See: http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
这篇关于jQuery .on()和.delegate()在iPad上不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!