【问题标题】:jQuery later than window loadjQuery 晚于窗口加载
【发布时间】:2011-04-11 17:23:08
【问题描述】:

我正在使用Cufon.replace 字体替换网站上的一些文本。目前在 IE8 标准模式下,当它在 $(document) 之外运行时,它仅在 50% 的时间内发生,其余时间 DOM 更改已发生(使用 IE8 内置的开发工具栏查看),但没有文本显示出来。

禁用替换并通过控制台手动应用它会正确更新所有文本。 将其包裹在 $(document).ready 中会阻止它发生 - 没有 DOM 修改(据我从开发工具栏得知)。但是我无法从控制台手动重新申请 - 所以它可能在骗我。

$(window).load包裹起来好像和$(document).ready效果一样

请注意,这只影响 ie8“标准模式”。它在 Firefox 和 IE7 中运行良好。

有什么想法吗?

【问题讨论】:

  • 好点,让我记下我的答案。当我看到美元符号时,我有点困惑,并立即认为这是主要问题。无论如何,您能粘贴代码以便我检查吗?现在看起来更像是一个时间问题,你可以做的是每次更改 DOM 时进行检查/替换(可能会创建一个 cufonRefresh 方法来处理这个问题,你可以调用每个 DOM 更改)
  • @corroded - Cufon.refresh() 不起作用,尽管我不确定。是否有可能是 Cufon 在无效状态下崩溃(首次运行时)并且无法在使用刷新时自行删除?
  • 如果没有一些代码可以参考,恐怕很难回答这个问题。你能发布一些你的标记(特别是你包含任何 JavaScript 的地方)和你试图在加载时执行的 JavaScript 吗?

标签: jquery internet-explorer-8 cufon


【解决方案1】:

我以前经历过...我会将它包装在匿名函数中,您也可以使用简单的 setTimeout 来延迟它(可能不需要)。

(function( $ ){ 
   // Your Cufon.replace()
   Cufon.replace('h1', { fontFamily: 'stack-overflow', hover: true });
   Cufon.now();

   // OPTIONAL - Delay by 150ms (you can experiment with this value)
   setTimeout(function(){ Cufon.refresh(); }, 150); 

})( jQuery );

【讨论】:

  • 谢谢。我最后把它删了。
猜你喜欢
  • 2018-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多