2013-12-15 50 views
3

这是我的HTML标记。jQuery attr()不适用于移动Safari

<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

您是否尝试使用'prop'而不是'attr'更改属性? –

+0

我现在就试试,会让你知道结果。谢谢:) – Liz

+0

你有任何错误信息? – Streamside

回答

1

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

- 从here

添加虚拟onclick处理程序作出元素可点击(通常是没有):

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

你已经做了它的链接,使之不问题。


但是,如果有一个mouseover事件改变任何内容(例如隐藏/显示的东西,就像在一个下拉菜单)的Click事件将不会触发。

mouse hands

- 从here


您也可以尝试touchstarttouchend事件。

例如

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