Jquery 扩展方法
Jquery方法重写是一个比较常用的技术,之前一直对这个没有一个系统的总结,今天总结一下Jquery方法重写。
jquery插件的开发包括两种:一种是类级别的插件开发,即给jquery添加新的全局函数,相当于给jquery类本身添加方法。
jquery的全局函数就是属于jquery命名空间的函数,另一种是对象级别的插件开发,即给jQuery对象添加方法。
1.1 添加一个新的全局函数 [javascript] $.foo = function(){ alert("foo"); } //调用方法 $.foo(); 1.2 使用jQuery.extend(object); [javascript] $.extend({ foo:function(){ alert("foo"); }, bar:function(){ alert("bar"); } }) //调用方法 $.foo(); $.bar(); 1.3 使用命名空间 [javascript] $.myPlugin = { foo:function(){ alert("foo"); }, bar:function(){ alert("bar"); } } //调用方法 $.myPlugin.foo(); $.myPlugin.bar();
[javascript] $.fn.foo = function(){ alert("hello jquery"); } $(‘#myF‘).foo() [javascript] (function($){ $.fn.extend({ pluginName:function(opt,callback){ alert("foo"); } }) })(jQuery); $("#myF").pluginName(); [javascript] (function (jq) { jq.fn.foo = function (obj) { alert(obj); }; })(jQuery) $("#myF").foo("hello jquery");
Jquery的extend方法还有一个重载原型:
第一个参数boolean代表是否进行深度拷贝,其余参数和前面介绍的一致,什么叫深层拷贝,我们看一个例子:
{ name: "John", location: {city: "Boston",county:"USA"} },
{ last: "Resig", location: {state: "MA",county:"China"} } );
我们可以看出src1中嵌套子对象location:{city:"Boston"},src2中也嵌套子对象location:{state:"MA"},第一个深度拷贝参数为true,那么合并后的结果就是:
location:{city:"Boston",state:"MA",county:"China"}}
也就是说它会将src中的嵌套子对象也进行合并,而如果第一个参数boolean为false,我们看看合并的结果是什么,如下:
{ name: "John", location:{city: "Boston",county:"USA"} },
{ last: "Resig", location: {state: "MA",county:"China"} }
);
那么合并后的结果就是:
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。