$(document).ready()在head.ready()中调用时不触发

时间:2015-10-02 13:10:14

标签: javascript jquery internet-explorer-11 document-ready head.js

我有一个问题,使用jQuery // Should pass only if your implicit isn't in scope, // and the underlying class doesn't define the hello method assertTypeError("(new HeyMan).hello") 和headjs framework v1.0.3,带有head.ready功能,仅在Internet Explorer上(版本11,我不能尝试旧版本),只有一次十点......

在我$(document).ready之前:

</body>

有时候,$(document).ready事件不会被触发。 它适用于Chrome和Firefox。

head.load('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',function() {
    head.load('//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js');
    head.ready(function() {
        $(document).ready(function() {
            $('.class').show();
        });
    });
});

我试图将$(window).load doesn't work better. 排除在外但是徒劳无功:

head.ready()

我找到了使用head.load('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js',function() { head.load('//ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js'); }); head.ready(function() { $(document).ready(function() { $('.class').show(); }); }); 代替head.ready的解决方案,但我无法使用此解决方案,因为$(document).ready中的部分来自与不使用headjs的平台共享的代码。

是否有人遇到此问题或有解决方案?

1 个答案:

答案 0 :(得分:0)

我的猜测是有竞争条件。您可能希望检查文档是否已处于就绪状态,因为document.ready不会激活

head.ready(function() {
  var readyfunc = function(){
     $('.class').show();
  };

  if (document.readyState === 'complete'){
    readyfunc();
  }else{
    $(document).ready(function() {
      readyfunc();
    });
  }
}

看看是否有效。