【问题标题】:JQuery for mobile safari: on() fails用于移动 Safari 的 JQuery:on() 失败
【发布时间】:2012-02-25 00:51:30
【问题描述】:

我正在尝试为移动网页更改动态生成的 DOM 元素上的一些类。 我常用的方法,jquery on() 没有正确接收事件。

"delegate()" 也没有,我的备份工作。

我正在使用 JQuery 版本“http://code.jquery.com/jquery-1.7.min.js”

【问题讨论】:

  • 解决方案是将 onclick='' 添加到 div 元素。不知道为什么会这样,但确实有效。

标签: jquery mobile jquery-mobile mobile-safari


【解决方案1】:

解决方案是将 onclick='' 添加到 div 元素。不知道为什么会这样,但确实如此。 -

【讨论】:

    【解决方案2】:

    不使用on,就不能直接写事件吗?

    如:

    $(document).ready(function () {  });
    $(document).click(function () {  });
    $(document).keyup(function () {  });
    $(document).keydown(function () {  });
    

    ?

    记住在加载 DOM 后将事件添加到对象。因为如果您尝试在 DOM 就绪检查之外使用 jQuery 选择器,它可能会在实际元素加载之前执行,然后它将找不到任何东西。这将导致没有事件发生。

    【讨论】:

    • 我认为问题在于,如果您使用不同的 jQuery 动态生成一个元素,则不会加载 DOM,这就是人们使用 on()、live() 和 delegate 的原因()。
    • 谢谢,我想我们每天都会学到一些新东西 :) Glade 你找到了解决方案。
    【解决方案3】:

    尝试Live事件

    $(".element").live("click",function(){
        alert("Clicked");
    });
    

    在动态生成的 DOM 元素上附加事件

    【讨论】:

    • 这适用于我桌面上的 Chrome、我的 android 浏览器,但不适用于我的 iOS 设备上的 safari。
    【解决方案4】:

    您需要确保将 jQuery 1.7.1 与 jQuery Mobile 1.1.0 Final 一起使用。重要的是使用 jQuery 的 1.7.1 版本,而不是目前可用的最新版本 1.7.2。

    使用 on() 代替一切可以提供更好的体验。事实上,几乎所有其他内容都已被弃用。

    几周前,我在一篇博文中谈到了这一点。

    http://zsprawl.com/iOS/2012/04/using-new-jquery-1-7-on-off-functions/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-02
      • 2023-03-07
      • 2012-02-19
      • 1970-01-01
      • 2012-04-10
      • 1970-01-01
      • 2015-04-18
      • 2012-08-25
      相关资源
      最近更新 更多