如何寫一個jquery插件


      本文總結整理一下如何寫一個jquery插件?雖然現今各種mvvm框架異常火爆,但是jquery這個陪伴我們成長,給我們帶來很多幫助的優秀的庫不應該被我們拋棄,寫此文章,作為對以往欠下的筆記的補充,以及對jquery的重溫。

       寫jquery插件有三種方法:

       1.使用$.extend()來拓展jquery;

       2.使用$.fn來給jquery添加新的方法;

       3.使用$.widget()應用jquery UI的部件工廠方式創建。

        方法一:      

$.extend({
        'sayHello':function(msg){
             console.log(msg);
        },
        $(function(){
          $.sayHello('Hello jQuery!!!');//Hello jQuery!!!
        });
});

    方法二:

        

 //方法二(基本):jQuery.fn = jQuery.prototype = {
	 //}
     $.fn.myplugin = function(){
         this.css('background','red');
     }

  

 //方法二(傳參):
     $.fn.myPlugin  = function(opt){
         var defaults = {
         	 'bgc':'red',
         	 'fontSize':'12px'
         };
         var settings = $.extend({},defaults,opt);
         debugger;
         this.css({
         	 'background':settings.bgc,
         	 'fontSize':settings.fontSize
         });
     }

  

//繼續升級方法二,改造成面向對象的形式來定義插件,提升插件的可讀性可維護性,
     ;(function($,window,document,undefined){
		var Beautifier = function(ele,opts){
		 this.$element = $(ele);
		 this.defaults = {
		     'bgc':'red',
		 	 'fontSize':'12px'
		 }
		 this.settings = $.extend({},this.defaults,opts);
		};
		Beautifier.prototype = {
		 'construct':Beautifier,
		  'bueatify':function(){
		  	  return this.$element.css({
		  	  	   'background':this.settings.bgc,
		 	        'fontSize':this.settings.fontSize
		  	  })
		  }
		}
		$.fn.myplugin2 = function(opts){
			var bt = new Beautifier(this,opts);
			return bt.bueatify();
		}
     })(jQuery,window,document);

  

 //調用
     $(function(){
        $("a").myplugin2({
        	'bgc':'red',
        	'fontSize':'50px'
        });
     });

  執行結果:

     

 

     方法三:這個方法用的較少,暫時不做研究講解。

       

       

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM