这是我的 HTML 标签。
<a href="#" id="test"><img id="imgtest" src="imgs/test_0.png" width="108" height="32" /></a>
这是我的 jQuery。
$(document).ready(function () {
$("#test").click(function () {
$('#imgtest').attr('src', 'imgs/test.png');
});
});
我需要在单击 anchor 标记时更改图像。 这适用于桌面上的任何浏览器,但移动版 Safari 除外。 这有什么问题吗?
最佳答案
Mobile Safari 只会在用户点击可点击元素(如链接)时产生鼠标事件。您可以通过向元素添加 onClick
事件处理程序来使元素可点击,即使该处理程序什么也不做。
-- 来自 here
添加一个虚拟的 onclick 处理程序以使元素可点击(通常不可点击):
<img id="imgtest" src="imgs/test_0.png" onclick="void(0)" />
您已经将其设为链接,所以这不是问题。
但是,如果有一个 mouseover
事件改变了任何内容(例如隐藏/显示东西,就像在下拉菜单中一样),则不会触发点击事件。
-- 来自 here
您也可以尝试 touchstart
或 touchend
事件。
例如
$(document).ready(function () {
$("#test").on("click touchend", function () {
$('#imgtest').attr('src', 'imgs/test.png');
});
});
关于jQuery attr() 不适用于移动 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20593842/