jQuery attr()没有在移动Safari上工作

时间:2013-12-15 11:12:31

标签: jquery html5 safari mobile-safari client-side

这是我的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');
    });
});

我需要在点击锚标记时更改图像。 这适用于桌面上的任何浏览器,但移动Safari。 这有什么问题?

1 个答案:

答案 0 :(得分:2)

Mobile Safari 只会在用户点按可点击​​元素(如链接)时生成鼠标事件。您可以通过向其添加onClick事件处理程序来使元素可单击,即使该处理程序不执行任何操作。

- 来自here

添加虚拟onclick处理程序以使元素可点击(通常不是):

<img id="imgtest" src="imgs/test_0.png" onclick="void(0)" />

你已经把它作为一个链接,所以这不是问题。


但是,如果有mouseover事件更改任何内容(例如隐藏/显示内容,例如下拉菜单中),则不会触发点击事件。

mouse hands

- 来自here


您还可以尝试touchstarttouchend个事件。

e.g。

$(document).ready(function () {
    $("#test").on("click touchend", function () {    
        $('#imgtest').attr('src', 'imgs/test.png');
    });
});