【问题标题】:jQuery attr() not working on mobile SafarijQuery attr() 在移动 Safari 上不起作用
【发布时间】:2013-12-15 11:12:30
【问题描述】:

这是我的 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 除外。 这有什么问题?

【问题讨论】:

  • 您是否尝试使用 prop 而不是 attr 更改属性?
  • 我现在试试,结果会告诉你的。谢谢:)
  • 您是否收到任何错误消息?
  • 将 attr 更改为 prop 不起作用 :( 我没有收到任何错误消息。我不知道如何使用我的 iPhone 获得错误。
  • 触摸两次有用吗?

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


【解决方案1】:

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

--来自here

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

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

你已经把它变成了一个链接,所以这不是问题。


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

--来自here


您也可以尝试touchstarttouchend 事件。

例如

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多