jQuery對象插件編寫方法
在上一篇文章中窟赏,我寫到j(luò)Query類插件的編寫方法僧家,這個方法是針對jquery本身的,一般寫插件是針對某一個對象的勋又,所以不建議寫類插件方法苦掘。
本文就講了如何針對jquery對象編寫插件
jquery為我們提供了一套編寫插件的基本模板,根據(jù)模板能快速的編寫插件楔壤,比如給你一棵樹干鹤啡,怎么讓它花枝花葉,仁者見仁智者見智了蹲嚣,無論插件怎么寫递瑰,核心的骨干還是這樣祟牲。
模板
;(function($){
$.fn.plugin = function(options){
var defaults = {
//默認(rèn)參數(shù)
}
var options = $.extend(defaults,options)
this.each(function(){
//業(yè)務(wù)邏輯
})
return this; //支持鏈?zhǔn)秸{(diào)用
}
})(jQuery)
引入調(diào)用:$(selector).plugin()
案例
有一個table,實現(xiàn)鼠標(biāo)移動上去變色抖部,移除恢復(fù),事件為點擊時说贝,調(diào)用回調(diào)函數(shù)
<table cellpadding="0" cellspacing="0" border=1 width="100%" id="table1">
<tr>
<th>姓名</th>
<th>年齡</th>
<th>性別</th>
</tr>
<tr>
<td>張三</td>
<td>12</td>
<td>男</td>
</tr>
<tr>
<td>李四</td>
<td>22</td>
<td>女</td>
</tr>
<tr>
<td>王五</td>
<td>88</td>
<td>男</td>
</tr>
<tr>
<td>小六</td>
<td>45</td>
<td>男</td>
</tr>
<tr>
<td>夏云</td>
<td>24</td>
<td>女</td>
</tr>
<tr>
<td>張三</td>
<td>12</td>
<td>男</td>
</tr>
<tr>
<td>張三</td>
<td>12</td>
<td>男</td>
</tr>
</table>
;(function($){
$.fn.table = function(options){
var defaults = {
currentRowClass: 'currentRowClass',
eventType:'mouseover',
eventType2:'mouseout',
callback:''
}
var options = $.extend(defaults,options)
this.each(function(){
var _this = $(this);
_this.find('tr').on(options.eventType,function(){
$(this).addClass(options.currentRowClass).siblings().removeClass(options.currentRowClass);
if(options.eventType == 'click'){
options.callback();
}
})
_this.find('tr').on(options.eventType2,function(){
$(this).removeClass(options.currentRowClass);
})
})
return this;
}
})(jQuery)
外部調(diào)用
var callbacks = function(){
alert(123);
}
var table1 = $('#table1');
$(table1).table({
eventType:'click',
callback: callbacks
});