2010-12-11 128 views
0

我想寫一個插件,遵循jQuery網站的指導原則。我可以在jQuery插件的頂部添加ready()嗎?

我也試圖將一切都納入其中,包括創建新的div元素。

這些div需要在準備好的文檔上創建,所以我想在這裏找出最佳選擇。

這是我目前擁有的,它工作正常,但由於某種原因它看起來不正確,即使我看不到任何不應該這樣做的地方。

有沒有更好的方法來做到這一點?

$(document).ready(function() { 
    var message_bar = "<div id="something"></div>"; 
    $('body').prepend(message_bar); 
}); 

(function($){ 
    $.fn.displayMessage = function(options) { 
    ... 

回答

1

如果是插件,你應該真的允許插件的用戶選擇何時初始化它。

我建議創建一個init函數,用戶可以顯式調用或在插件實例化時隱式調用。

在文檔中,您可以規定在文檔準備好之前不應該初始化插件...或者您可以編寫一些代碼來檢查文檔的狀態並將初始化代碼添加到ready()隊列中。

+0

我實際上使用bind()來動態創建元素。但是如果你想能夠檢查插件是否被實例化,init就是要走的路。好決定。 – 2010-12-20 18:53:54

1

把準備功能於init方法具有一定的優勢:

的頁面加載所有的插件,但不需要他們可以很容易地禁用插件。

腳本上準備執行您displayMessage()方法和運行之前你的插件運行就會把displayMessage()早於插件自己準備劇本就緒隊列。當就緒事件觸發時,按照錯誤的順序調用函數。

相關問題