【问题标题】:JQuery event $(document).ready doesn't fire with mobile safari on IPhone 5JQuery 事件 $(document).ready 不会在 iPhone 5 上使用移动 safari 触发
【发布时间】:2014-07-09 12:03:50
【问题描述】:

我使用 $(document).ready 来触发事件。但是,它适用于 IPHONE4S 和 IPHONE5S(均运行 7.1.1)。但在 IPHONE5(7.1.1) 上,它根本不触发。

当我更改为 window.onload 时,一切正常。

这让我很困惑,因为所有的 iPhone 都运行完全相同的 iOS。为什么只有 IPHONE5 不能与 $(document).ready 一起使用?这是 JQuery 还是 iOS 的 bug?

$(document).ready(
    function(){
    alert("fired");
});

window.onload=function(){
    if(navigator.userAgent.match(/iPhone/i))
    alert("fired");
}

【问题讨论】:

  • 使用 Safari 的开发者菜单访问控制台,查看设备的浏览器是否抛出任何警告或错误。
  • 在 IPHONE 上的移动 safari 上有开发者菜单吗?
  • 是的,可以通过 USB 连接您的设备并在 Mac 上的“开发人员”菜单中选择其选项来访问它

标签: javascript jquery ios


【解决方案1】:

试试 jQ 插件 jQuery mobile 或旧版本的 jQuery。众所周知,jQ 1.6+ 会导致 Safari/iPhone 出现问题。我认为这不是一个“错误”,而是将一些对移动设备的特殊支持外包给了一个插件,以保持核心纤薄。

【讨论】:

  • 您能详细说明一下吗? jQuery mobile 应该如何提供帮助?使用 jQuery mobile 时替换 $(document).ready(...) 的代码是什么?或者您只是添加 jQueryMobile 并确保 $(document).ready() 可以在 iPhone 上运行?如果您需要在桌面和移动设备上使用相同的页面怎么办?
  • 您能否指出一些与手头问题相关的“jQ 1.6+ 已知会在 Safari/iPhone 上引起问题”(文档、bugtracker 等)的来源?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
相关资源
最近更新 更多