好了,下面有一些我覺得想做一個好的插件必須應有的要求:
1、在JQuery命名空間下聲明隻聲明一個單獨的名稱
2、接受options參數,以便控制插件的行為
3、暴露插件的預設設定 ,以便外面可以通路
4、适當地将子函數提供給外部通路調用
5、保持私有函數
6、支援中繼資料插件
下面将逐條地過一遍:
這表明是一個單獨的插件腳本。如果你的腳本包含多個插件或者是互補的插件(像$.fn.doSomething()和$.undoSomething()),那麼你可以根據要求聲明多個名稱。但一般情況下,力争用單一的名稱來維持插件現實的所有細節。
在本例中,我們将聲明一個叫“hilight”的名稱
作為插件的提升和優化,我們應該将上面的代碼暴露出來作為插件的預設設定。
這非常重要,這樣做讓使用插件的使用者可以非常容易地用最少的代碼重寫或自定義該插件。然而這個我們可以借助JavaScript function對象的優勢:
這裡值得注意的是$.extend()第一個參數是一個空的對象,這樣可以讓我們重寫插件的預設設定
使用者可以像這樣使用插件:
這個例子延續前面的例子,你會發現有一個有趣的方法可以擴充你的插件(然後還可以讓其他人擴充你的插件 :))。例如,我們在插件裡聲明了一個函數叫“format”用來高這顯示文本,我們的插件實作代碼可能是這樣子的:
暴露插件有部分内容提供重寫看上去似乎非常強大,但是你必須認真地考慮你的插件哪一部分是需要暴露出來的。一旦暴露出來,你就需要考慮這些變化點,一般情況下,如果你沒有把握哪部分需要暴露出來,那麼你可以不這樣做。
那如何才能夠定義更多的函數而不将其暴露出來呢?這個任務就交給閉包吧。為了證明,我們在插件中添加一個函數叫“debug”,這debug函數将會記錄已選擇的元素數量到FireBug控制台中。為了建立閉包,我們将插件定義的整部分都包裝起來:
依賴于所寫的插件類型,并支援中繼資料插件會使得其本身更加強大。個人來講,我喜歡元素據插件,因為它能讓你分離标簽中重寫插件的配置(這在寫demo和示例時特别有用)。最重要的是,想現實它特别的容易!
幾行的變化完成了以下幾件事:
1、檢測中繼資料是否已經配置
2、如果已配置,将配置屬性與額外的中繼資料進行擴充
然後我們通過一句腳本就可以根據中繼資料配置分開地高亮顯示這些div标簽:
最後,将全部代碼放在一起:
<a href="http://11011.net/software/vspaste"></a>
并在本文中更新了最後的代碼
<b>作者贊賞</b>
<a href="http://union.dangdang.com/transfer.php?from=P-262177&ad_type=10&sys_id=1&backurl=http%3A%2F%2Fbook.dangdang.com%2F">當當計算書籍 5-8折</a>
本文轉自Sam Lin部落格部落格園部落格,原文連結:http://www.cnblogs.com/samlin/archive/2010/04/18/How-To-Develop-JQuery-Plugin.html,如需轉載請自行聯系原作者