如果您在桌面上尝试这个片段,一切都正常。
每当您在iPad上尝试它时,它不会做任何事情。
$('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()也是如此
是虫子什么的吗?
发布于 2012-04-15 19:55:43
这是Safari的一个移动bug/特性:单击事件不会一直泡到身体。
添加onclick=""是一种已知的解决方法,但是IMHO更容易将侦听器附加到<body>的第一个子节点上。
请参阅:del.html
发布于 2012-08-29 13:33:58
将iOS上主体的光标样式更改为“指针”,一切都将完美地工作。你不需要在你想点击的每个元素上添加onclick=“.
<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>我知道你现在在想什么:“哇!”
发布于 2012-04-15 19:09:36
我不知道为什么它不工作,它可能是一个bug,但有一个很好的解决办法。简单地将onclick=""放到您要委派的div中,它将完美地工作。
<div id="click" onclick="">Click here</div>
<script>
$("body").on("click", "#click", function() {
alert("This works on iPad");
});
</script>小提琴
https://stackoverflow.com/questions/10165141
复制相似问题