【问题标题】:IE error window.onload does not fire consistentlyIE 错误 window.onload 不会持续触发
【发布时间】:2013-11-10 02:19:59
【问题描述】:

我正在尝试实现 jQuery 轨道滑块。我有一个包含多个图像的 div 标签。我遇到的问题是在所有图像加载之前调用了 orbit() 函数。我试图通过围绕轨道函数调用来解决这个问题,如下所示:

window.onload = function(){jQuery('#img-container').orbit()} 

这应该确保仅在页面和所有内容(包括必要的图像)加载后才调用轨道。但是,onload 事件不会始终触发,因为图像滑块并不总是加载。我注意到,如果我清除缓存并导航到页面,则 onload 事件不会触发,因此轨道永远不会触发。

我尝试过的其他事情: 我也尝试过 jQuery(window).load() ,但没有成功。我还尝试使用 .load() 函数迭代容器中的每个单独的图像,但没有成功。我已经能够使用类似于此方法的方法在 Chrome 和 FF 上解决此问题:jquery .one() load and error events not working

有没有人有任何其他建议可以在 IE 中解决这个问题?

附加信息:我做了一个测试,我使用 deelay.me 将图像延迟几秒钟,这样做使 onload 功能始终如一地工作。只有当图像快速加载时,onload 似乎才不会触发

【问题讨论】:

  • 这应该可以工作,也就是把这段代码放在你身体的末尾,然后看看我认为你在初始化之前使用的是 jquery
  • 我在运行 onload 之前检查并确保 JQuery 已加载,所以我不认为这是根本原因

标签: javascript jquery internet-explorer onload orbit


【解决方案1】:

在 jQuery 中使用 jQuery 函数的正确方法:

$(function(){
    //onload stuff here...
});

这应该可以在 IE 和其他浏览器中使用。

【讨论】:

  • 这与window.onload相同,您可以从已链接的文档中阅读此内容 ("The function to execute when the DOM is ready.") 在 jQuery 中实现的正确方法OP 想要的是:$(window).load(function () {...}).
  • 我也试过 $(window).load(function () {...}) 但没有用。我做了一个测试,我使用deelay.me 将图像延迟几秒钟,这样做使 onload 功能始终如一地工作。只有当图像快速加载时,onload 似乎才不会触发
猜你喜欢
  • 1970-01-01
  • 2011-07-27
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多