2013-02-21 58 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

相關問題