1 jQuery.fn.extend(); 2. jQuery.extend();

jQuery为开发插件提拱了两个方法,分别是:

1. jQuery.fn.extend();

2. jQuery.extend();

(1). jQuery.extend(object); 

它是为jQuery类添加类方法,可以理解为添加静态方法。如:

a.jQuery.extend({

  min: function(a, b) { return a < b ? a : b; },

  max: function(a, b) { return a > b ? a : b; }

});

jQuery.min(2,3); //  2
jQuery.max(4,5); //  5


(2). jQuery.fn.extend(object);

$.fn是什么?

$.fn是指jQuery的命名空间,fn上的成员(方法function及属性property),会对jQuery实例每一个有效。

查看jQuery代码,就不难发现。

jQuery.fn = jQuery.prototype = {

   init: function( selector, context ) {//.... 

};

原来 jQuery.fn = jQuery.prototype.

所以,它是对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。

比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:

$.fn.extend({         
     doAlertWhileClick:function() {           
           $(this).click(function(){                
                  alert($(this).val());          
            });          
      }      
});      
$("#input1").doAlertWhileClick(); // 页面上为:   

$("#input1") 为一个jQuery实例,当它调用成员方法 doAlertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。


$.fn.extend({
doAlertWhileClick:function() {}
})
另一种写法是:
$.fn['doAlertWhileClick'] = function(){}

猜你喜欢

转载自15757126299.iteye.com/blog/2287125