JQ插件开发
jquery插件的开发包括两种:一种是类级别的插件开发,即给jquery添加新的全局函数,相当于给jquery类本身添加方法。
jquery的全局函数就是属于jquery命名空间的函数,另一种是对象级别的插件开发,即给jQuery对象添加方法。
也可以理解为另外两种方式,一种是jQuery本身的扩展方法,另一种是jQuery所选对象的扩展方法
1.jQuery.extend(Object); // jQuery 本身的扩展方法2.jQuery.fn.extent(Object); // jQuery 所选对象扩展方法
1、类级别的插件开发
**类级别的插件开发最直接的理解就是给jQuery类添加类方法**
可以理解为添加静态方法。典型的例子就是$.AJAX()这个函数,将函数定义于jQuery的命名空间中。
关于类级别的插件开发可以采用如下几种形式进行扩展:
$.foo = function(){
alert("foo");
}
//调用方法
$.foo();
1.2 使用jQuery.extend(object);
$.extend({
foo:function(){
alert("foo");
},
bar:function(){
alert("bar");
}
})
//调用方法
$.foo();
$.bar();
1.3 使用命名空间
$.myPlugin = {
foo:function(){
alert("foo");
},
bar:function(){
alert("bar");
}
}
//调用方法
$.myPlugin.foo();
$.myPlugin.bar();
2、对象级别的插件开发
$.fn.foo = function(){
alert("hello jquery");
}
$(‘#myF‘).foo()
(function($){
$.fn.extend({
pluginName:function(opt,callback){
alert("foo");
}
})
})(jQuery);
$("#myF").pluginName();
(function (jq) {
jq.fn.foo = function (obj) {
alert(obj);
};
})(jQuery)
$("#myF").foo("hello jquery");
//添加方法到JQuery原型 $.fn.extend();//为JQ($)对象扩展方法
(function(jq) {
jq.fn.foo = function(obj) {
alert(obj);
};
})(jQuery); //使用匿名函数自调自用
$.fn.extend({
pluginName: function(opt, callback) {
alert("foo");
}
});
//对象级别插件开发
$.fn.setStyle = function() {
$('li', this).click(function() {
alert('msg');
})
};
//类级别的插件开发(全局)
$.pointer = function() {
alert('小手');
}
//jq的扩展
$.extend({
sayhi: function() {
alert('ooooo');
}
});
//命名空间式
$.myMethods = {
sayhellow: function() {
alert('命名空间式!');
}
}