使用:
<button>
元素的.click()事件不会在iPhone上调用。我的MVC项目中的所有<button>
元素都是这种情况。它已在多款iPhone(iPhone 5和iPhone 6设备)上进行了测试,因此它似乎不是一个孤立的问题。
它还在具有Firefox,IE和Chrome的PC上进行了测试,并按预期工作。它还在Android设备和Windows手机上进行了测试,并且.click()事件正常运行。我无法确定这是Safari,Safari Mobile,iPhone还是iOS问题。
我在Stack Overflow上发现有关iOS设备的讨论有时不适用于本身不可点击的元素,除非您添加CSS样式以将光标转换为指针(cursor : pointer
)。但是,此解决方法仍然不适用于<button>
元素。
我认为值得一提的是,当使用锚标记(<a>
)并将其设置为类似按钮时,.click()事件会在iPhone设备上触发。
有没有人经历过这个,如果有的话,知道一个解决方法吗?我知道我可以将所有<button>
元素更改为<a>
标记,如果必须,我会这样做。但我想理解为什么会发生这种情况,以及我是否正在做些什么来解决这个问题。非常感谢。
下面是我正在使用的标记和jquery代码的片段:
$(document).ready(function () {
$('#taskContainer').on('click', '#btnSave', function (event) {
console.log('save button clicked');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div id="taskContainer">
<button id="btnSave" class="btn btn-primary">Save</button>
</div>
答案 0 :(得分:0)
在点击触发器结束时使用return false:
$('#taskContainer').on('click', '#btnSave', function (event) {
console.log('save button clicked');
return false;
});