2013-02-21 60 views
2

在这里,我面临jQuery的holdReady问题。持有document.Ready()有时与jquery holdReady函数

$.holdReady(true); 
    $.getScript("someXJqueryPlugin.js", function() { 
    $.holdReady(false); 
    }); 

在我准备功能

$(document).ready(function(){ 
someFunctionFromMyPlugin(); 
}); 

因为someXJqueryPlugin.js的一些。所以我试图拖延的准备功能,直到我的插件加载什么个头大。

仍然iam得到错误someFunctionFromMyPlugin不是一个函数。

任何提示??我失踪?请帮忙 。

在此先感谢。

+0

我交叉检查了我的js路径,正确。 – 2013-02-21 19:10:03

+2

这很大程度上取决于您的代码。准备好的事件很可能已经被解雇了。你需要尽快致电holdready,最好的将直接在头上。 – Christoph 2013-02-21 19:16:31

+0

@Christoph ok.让我试试看。 – 2013-02-21 19:19:24

回答

3

我建议将文档准备好在完成的回调中。

$.getScript(url,function(){ 
    $(document).ready(function(){ 
     // do stuff 
    }); 
}); 

或使用deferreds:

$.when($.getScript(url), $.ready).done(function(){ 
    // do stuff 
}); 

$.ready未记录,并随时更改,你可以用下面的更换为更稳定的版本:

$.when($.getScript(url), $.Deferred(function(def){ 
    $(def.resolve); 
})).done(function(){ 
    // do stuff 
}); 
+0

因此,holdReady将不起作用??我的意思是在我的情况。 – 2013-02-21 19:35:08

+0

@TheSureshAtta当然,它会工作,它应该以你拥有的方式工作。但是,我怀疑别的东西正在干扰它。我的答案中的所有三种方式都是自包含的,这意味着外部因素不会影响其运作方式(例如其他使用'holdReady') – 2013-02-21 20:02:41

+0

行。其中一个使我的工作完成。谢谢! – 2013-02-21 20:04:01

相关问题