Mar*_*in. 30 javascript jquery delegation ipad
如果您在桌面上尝试此代码段,一切正常.
每当你在iPad上试用它时,它都不会做任何事情.
$('body').on('click', '#click', function() {
alert("This alert won't work on iPad");
});Run Code Online (Sandbox Code Playgroud)
div {
font-size: 24px;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="click">Click here</div>Run Code Online (Sandbox Code Playgroud)
简单的.click()处理程序工作,但它不是我想要的.这同样适用于.delegate();和.live()
这是一个bug还是什么?
mdd*_*ddw 34
这是一个Safari移动bug /功能:点击事件不会一直冒泡到身体.
添加onclick=""是一个已知的解决方法,但恕我直言,更容易将听众附加到第一个孩子<body>.
请参阅:http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
Bor*_*oro 30
将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>
Run Code Online (Sandbox Code Playgroud)
我知道你现在在想什么:"WTF!".
Mar*_*in. 12
我不确定为什么它不起作用,它可能是一个错误,但有一个很好的解决方法.简单地说onclick="",你委托的div,它将完美地工作
<div id="click" onclick="">Click here</div>
<script>
$("body").on("click", "#click", function() {
alert("This works on iPad");
});
</script>
Run Code Online (Sandbox Code Playgroud)
Sim*_*old 11
在iOS上没有光标样式没有事件冒泡.
因此,在CSS中,您需要添加cursor: pointer;到元素中.
$('body').on('click', '#click', function() {
alert("This alert won't work on iPad");
});Run Code Online (Sandbox Code Playgroud)
#click {
font-size: 24px;
cursor: pointer;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="click">Click here</div>Run Code Online (Sandbox Code Playgroud)
我知道它很久以前就被问过,但我认为一个简单的CSS解决方案可能有所帮助.
| 归档时间: |
|
| 查看次数: |
15714 次 |
| 最近记录: |