外掛(Plugin)也成為 jQuery 擴充套件(Extension),是一種遵循一定規範的應用程式介面編 寫出來的程式。目前 jQuery 外掛已超過幾千種,由來自世界各地的開發者共同編寫、驗證 和完善。而對於 jQuery 開發者而言,直接使用這些外掛將快速穩定架構系統,節約專案成 本
一.外掛概述
外掛是以 jQuery 的核心程式碼為基礎,編寫出複合一定規範的應用程式。也就是說,插 件也是 jQuery 程式碼,通過 js 檔案引入的方式植入即可。
外掛的種類很多,主要大致可以分為:UI 類、表單及驗證類、輸入類、特效類、Ajax 類、滑動類、圖形影象類、導航類、綜合工具類、動畫類等等。
引入外掛是需要一定步驟的,基本如下:
1.必須先引入 jquery.js 檔案,而且在所有外掛之前引入;
2.引入外掛;
3.引入外掛的周邊,比如皮膚、中文包等。
二.驗證外掛
Validate.js 是 jQuery 比較優秀的表單驗證外掛之一。這個外掛有兩個 js 檔案,一個是主 檔案,一個是中文包檔案。使用的時候,可以使用 min 版本;在這裡,為了教學,我們未 壓縮版本
驗證外掛包含的兩個檔案分別為:jquery.validate.js 和 jquery.validate.messages_zh.js。
//HTML 內容
<scripttype="text/javascript"src="jquery.validate.js"></script> <scripttype="text/javascript"src="jquery.validate.messages_zh.js"></script> <form> <p>用 戶 名:<inputtype="text"class="required"name="username"minlength="2"/> *</p> <p>電子郵件:<inputtype="text"class="requiredemail"name="email"/> *</p> <p>網 址:<inputtype="text"class="url"name="url"/></p> <p><inputtype="submit"value="提交"/></p> </form>
//jQuery 程式碼
$(function(){ $('form').validate(); });
只要通過 form 元素的 jQuery 物件呼叫 validate()方法,就可以實現“必填”、 “不能小於 兩位”、 “電子郵件不正確”、“網址不正確”等驗證效果。除了 js 端的 validate()方法呼叫, 表單處也需要相應設定才能最終得到驗證效果。
1.必填項:在表單設定 class="required";
2.不得小於兩位:在表單設定 minlength="2";
3.電子郵件:在表單中設定 class="email";
4.網址:在表單中設定 class="url"。
注意:本章就簡單的瞭解外掛的使用,並不針對某個功能的外掛進行詳細講解。比如驗 證外掛 validate.js,它類似與 jQuery 一樣,同樣具有各種操作方法和功能,需要進行類似手 冊一樣的查詢和講解。所以,我們會在專案中再去詳細講解使用到的外掛。
三.自動完成外掛
所謂自動完成,就是當使用者輸入部分字元的時候,智慧的搜尋出包含字元的全部內容。 比如:輸入 a,把匹配的內容列表展示出來。
//HTML 內容
<scripttype="text/javascript"src="jquery.autocomplete.js"></script> <scripttype="text/javascript"src="jquery-migrate-1.2.1.js"></script> <linkrel="stylesheet"href="jquery.autocomplete.css"type="text/css"/>
//jQuery 程式碼
varuser=['about','family', 'but', 'black']; $('forminput[name=username]').autocomplete(user,{ minChars:0 //雙擊顯示全部資料 });
注意:這個自動完成外掛使用的 jQuery 版本較老,用了一些已被新版本的 jQuery 廢棄 刪除的方法,這樣必須要向下相容才能有效。所以,去查詢外掛的時候,要注意一下他堅持 的版本。
四.自定義外掛
前面我們使用了別人提供好的外掛,使用起來非常的方便。如果市面上找不到自己滿意 的外掛,並且想自己封裝一個外掛提供給別人使用。那麼就需要自己編寫一個 jQuery 外掛 了。
按照功能分類,外掛的形式可以分為一下三類:
1.封裝物件方法的外掛;(也就是基於某個 DOM 元素的 jQuery 物件,區域性性)
2.封裝全域性函式的外掛;(全域性性的封裝)
3.選擇器外掛。(類似與.find())
經過日積月累的外掛開發,開發者逐步約定了一些基本要點,以解決各種因為外掛導致 的衝突、錯誤等問題,包括如下:
1.外掛名推薦使用 jquery.[外掛名].js,以免和其他 js 檔案或者其他庫相沖突;
2.區域性物件附加 jquery.fn 物件上,全域性函式附加在 jquery 上;
3.外掛內部,this 指向是當前的區域性物件;
4.可以通過 this.each 來遍歷所有元素;
5.所有的方法或外掛,必須用分號結尾,避免出現問題;
6.外掛應該返回的是 jQuery 物件,以保證可鏈式連綴;
7.避免外掛內部使用$,如果要使用,請傳遞 jQuery 進去。
按照以上的要點,我們開發一個區域性或全域性的導航選單的外掛。只要導航的<li>標籤內 部嵌入要下拉的<ul>,並且 class 為 nav,即可完成下拉選單。
//HTML 部分
<ulclass="list"> <li>導航列表 <ul class="nav"> <li>導航列表 1</li> <li>導航列表 1</li> <li>導航列表 1</li> <li>導航列表 1</li> <li>導航列表 1</li> <li>導航列表 1</li> </ul> </li> <li>導航列表 <ul class="nav"> <li>導航列表 2</li> <li>導航列表 2</li> <li>導航列表 2</li> <li>導航列表 2</li> <li>導航列表 2</li> <li>導航列表 2</li> </ul> </li> </ul>
//jquery.nav.js 部分 ; (function($){ $.fn.extend({ 'nav':function(color){ $(this).find('.nav').css({ listStyle:'none', margin:0, padding:0, display:'none', color:color }); $(this).find('.nav').parent().hover(function(){ $(this).find('.nav').slideDown('normal'); },function(){ $(this).find('.nav').stop().slideUp('normal'); }); returnthis; } }); })(jQuery);
此教程來源於北風網