有人能解释一下为什么这在浏览器上运行正常,但在像苹果 iPhone 这样的移动设备上不起作用吗?在 iPhone 上,我从警报中永远不会得到 hello
。为什么?
<div class="close">
Click here
</div>
JS:
$(document).on('click', '.close', function() {
alert('hello');
});
有人能解释一下为什么这在浏览器上运行正常,但在像苹果 iPhone 这样的移动设备上不起作用吗?在 iPhone 上,我从警报中永远不会得到 hello
。为什么?
<div class="close">
Click here
</div>
JS:
$(document).on('click', '.close', function() {
alert('hello');
});
默认情况下,div不是可点击的元素。但添加 cursor: pointer;
可使iOS将其视为可点击的。
所以你只需要添加
.close {
cursor: pointer;
}
将此代码添加到您的CSS中,它就会起作用。
证明在此处:https://jsfiddle.net/27ezjrqr/6/
$(document).on('click', '.close', function() {
alert('hello');
});
.close {
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="close">
Click here
</div>
我使用了touchstart事件和click事件,这对我很有效。
$(document).on("click touchstart tap", "#button_X", function (){
//your code here
});
iOS 7.0.3版本已修复了Javascript alert()
和其他更多的错误。
在iOS上,点击事件的效果与预期不同。您可以使用类似于touchstart的东西,或者使用奇怪的iOS特性:在您的CSS中设置.close{cursor:pointer}
。