jQuery(function(){})与(function(){})(jQuery)的区别(二)

来源:互联网 发布:mac 重新分配磁盘空间 编辑:程序博客网 时间:2024/05/17 07:35

编写插件的格式为:

(function( $ ){

   $.fn.myPlugin = function() {

      // Do your awesome pluginstuff here

};

})( jQuery );

注意: 一定要用(function( $ ){  //plugin goes here   })( jQuery); 包裹插件内容;

为了更好的兼容性,开始前有个分号

;(function( $){ 

//此处将$作为匿名函数的形参

  //这里放置代码,可以使用$作为jQuery的别名

})( jQuery );//将jQuery作为实参传递给匿名函数
(function( $ ){

  $.fn.tooltip =function( options )

   

   var settings =

       {

     'location' : 'top',

          'background-color' : 'blue'

       };

   return this.each(function()

        

     // If options exist, lets merge them

     // with our default settings

          if ( options )

     

      $.extend( settings, options );

     }

      // Tooltip plugin code here

    });

  };

})( jQuery );

$('div').tooltip({

 'location' : 'left'

});

工具函数$.extend()除可以扩展自身jQuery自身函数外,还有另外一个很强悍的功能,就是用于扩展已有的Object对象,其调用的语法格式为:$.extend(target,object1,....[objectn])

 

注意:$.extend( settings, options); 

$.extend(target,prop1,propN):用一个或多个其他对象来扩展一个对象,返回这个被扩展的对象。这是jquery实现的继承方式。
如:

$.extend(settings,

options);
//合并settings和options,并将合并结果返回settings中,相当于options继承setting并将继承结果保存在setting中。

var settings = $.extend({}, defaults,options);
//合并defaults和options,并将合并结果返回到setting中而不覆盖default内容。
可以有多个参数(合并多项并返回)

原创粉丝点击