编写基于jQuery的插件的方法

时间:2022-06-14 13:26:36

注意:jQuery中有一个extend的方法,这个方法是添加js对象字段的,下面会多次用到

1:添加全局类的方法

常用的ajax就是该类插件,下面要编写一个简单的加法和减法的基于jQuery的方法

     $.extend({
add:function(a,b){return a+b;},
minus:function(a,b){return a-b;}
}); var i= $.add(100,200);
var j= $.minus(100,200);
alert(i+'##'+j);

第6行和第7行就可以使用该方法,对于js的全局静态公用方法,都可以这样写,将其他语言中的Global,Helper或者Utils等等文件中的方法,在js中可以用这种扩展jQuery的方法去做

2:添加对象的方法

下面要给按钮标签自定义一些方法,通过jQuery来调用(注意,按钮使用了bootstrap的样式,不过这对于下面的演示没有关系^_^)

 <div id="btn" class="btn btn-danger">
按钮点击
</div>

下边给按钮自定义了一个初始化的方法,让按钮把传入的参数显示在content上,而且还自定义了一个press的回调事件的方法

   +function($){
var parms={
name:"pluign",
version:"2.0"
};
var showDesc=function(obj){
$(obj).text(JSON.stringify(parms));
}
$.fn.initButton=function(options){
$.extend(parms,options);
return this.each(function(){
showDesc(this);
$(this).on('click',function(){
parms.press.apply(this);
});
});
}
}(jQuery);
$('#btn').initButton({
name:'hello world',
sex :'Male',
press:function(){
alert('click button');
}
});

第1行到18行是对jQuery的扩展,注意第一行的+号的写法,其实就是(function($){})(jQuery);
博主是参照Bootstrap的源码的写法,至于为什么这样写,猜测估计是为了省一个括号“)”字符吧,呵呵

方法中的showDesc将传入参数显示到按钮上

具体效果如下:

编写基于jQuery的插件的方法

由此可见:传入的参数,都可以在jQuery扩展中拿到,这样就可以在自己的扩展插件中做任意想做的事情了。