jQuery attr() 不适用于移动 Safari

标签 jquery html 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');
    });
});

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

最佳答案

Mobile Safari 只会在用户点击可点击元素(如链接)时产生鼠标事件。您可以通过向元素添加 onClick 事件处理程序来使元素可点击,即使该处理程序什么也不做。

-- 来自 here

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

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

您已经将其设为链接,所以这不是问题。


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

mouse hands

-- 来自 here


您也可以尝试 touchstarttouchend 事件。

例如

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

关于jQuery attr() 不适用于移动 Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20593842/

相关文章:

html - 我应该在自定义 WordPress 主题中使用 <div id ="page"class ="site"> 吗?

html - CSS float 不工作

safari - Safari 6 或 Bootstrap 模式对话框出现渲染问题?

javascript - 更改日期范围以在 FullCalendar 中显示事件

jquery - Bootstrap Screen 自动适应高度内容

javascript - jQuery:如何改变一个 div 的位置,在另一个 div 里面然后创建一个滑动效果?

html - div 内的 h1 标签影响所有

html - 有没有办法在 Safari Web 检查器中获取伪元素的计算指标?

jquery - iPad/移动版 Safari : div fixed in one direction

javascript - 当两个输入相同时启用按钮