JQuery插件開發入門(原創)
JQuery插件開發入門(原創)
作者:餘超 EMail:[email protected]
這個月,因爲一些工作上的需要重新開始以前用過的JQuery開發,而最後選擇採用了插件開發,對於JQuery初學者來說,開發JQuery插件是一個高級的話題。
JQuery插件的開發一種是類級別的給JQuery添加新的全局函數,另一種是對象級別的給JQuery對象添加方法。
先給大家展示一下具體的開發環境:
[yuchao@yuchao-Latitude-E5410 ext]$pwd
/opt/lampp/htdocs/jquery/ext
[yuchao@yuchao-Latitude-E5410 ext]$ls
demo.html jquery-1.6.4.min.js jquery.yuchao.js style.css ui
[yuchao@yuchao-Latitude-E5410 ext]$
另外在demo.html中引入Jquery插件:
<script type="text/javascript" src="jquery-1.6.4.min.js"></script>
如下加入自己開發的插件jquery.yuchao.js文件:
<script type="text/javascript" src="jquery.yuchao.js"></script>
<link rel="stylesheet" type="text/css" href="style.css" />
1 添加一個新的全局函數,可採用如下定義,使用JQuery.extend(object),
/*
*http://jquery.com/
*contact:[email protected]
*yuchao first extend
*/
$.extend({
add:function(a,b){return a+b;},
sub:function(a,b){return a-b;},
mut:function(a,b){return a*b;},
div:function(a,b){return a/b;}
});
如上擴展還有其他寫法,使用$.extend(object)也行,
調用時候寫爲:
$.add(15,10); //return 25
可以寫爲JQuery.myPlugin = {Object}
調用時採用的方法:
$.myPlugin.add(12,34);
$.myPlugin.mut(3,5);
使用命名空間可以解決插件衝突,
2、對象級別的插件開發如下的兩種形式
沒有插件名稱的:
(function($){
$.fn.extend({
pluginName:function(opt,callback){
// Our plugin implementation code goes here.
}
})
})(JQuery);
有插件名稱的:
(function($) {
$.fn.pluginName = function() {
// Our plugin implementation code goes here.
};
})(JQuery);
上面定義了一個JQuery函數,形參是$,函數定義完成之後,把JQuery這個實參傳遞進去.立即調用執行。
這樣的好處是,我們在寫JQuery插件時,也可以使用$這個別名,而不會與prototype引起衝突.
fn 是什麼東西呢。查看JQuery源代碼,就不難發現。
JQuery.fn = JQuery.prototype = {
init: function( selector, context ) {//....
//......
};
JQuery.fn = JQuery.prototype...
JQuery是一個封裝得非常好的類,比如我們用語句$("#inputtags")會生成一個JQuery類的實例。
JQuery.fn.extend(object); 對JQuery.prototype進得擴展,就是爲JQuery類添加“成員函數”。
比如我們要開發一個插件,做一個特殊的編輯框,當它被點擊時,便alert當前編輯框裏的內容。可以這麼做:
/*
*http://jquery.com/
*contact:[email protected]
*yuchao first fn extend
*/
$.fn.extend({
clickAlert:function(){
$(this).click(function(){
alert($(this).val());
});
}
});
在html文件中使用$("#input1").clickAlert();便可以調用,便實現了擴展,每次被點擊時它會先彈出目前編輯裏的內容。
到此爲止,插件開發完成,實際工作中有具體的插件開發很複雜,這裏只是一個簡單的demo版本。
希望大家多多拍磚,多多指點。
參考官方網站文章:
http://jquery.com/
http://docs.jquery.com/Plugin
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.