jQuery晚于窗口加载

tga*_*ews 5 jquery cufon internet-explorer-8

我正在使用Cufon.replace字体替换网站上的一些文字.目前在IE8标准模式下,当它在$(文档).ready之外运行时,它只发生了大约50%的时间,其余的时间发生了DOM更改(使用开发工具栏中的IE8查看)但没有文本是显示.

禁用替换,并通过控制台手动应用它会正确更新所有文本.包装它会$(document).ready阻止它永远发生 - 没有DOM修改(据我从dev工具栏中可以看出).但是我无法从控制台手动重新应用 - 所以它可能对我撒谎.

包装它$(window).load似乎具有相同的效果$(document).ready

请注意这只影响ie8"标准模式".它在Firefox和IE7中运行良好.

有什么想法吗?

Tim*_*rez 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 );
Run Code Online (Sandbox Code Playgroud)