2013-03-05 2 views
1

jQuery 플러그인을 작성하여 모든 jQuery 함수, 메소드 및 사용 가능한 특성을 갖는 가장 짧고 빠른 방법은 무엇입니까? jquery.*-plugin.js 파일에 저장되는 대부분의 경우이 패턴을 피하려면 다음을 수행하십시오.jQuery 플러그인을 작성하는 가장 짧고 빠른 방법

(function($){ 
    $.yourPluginName = function(el, radius, options){ 
     // To avoid scope issues, use 'base' instead of 'this' 
     // to reference this class from internal events and functions. 
     var base = this; 

     // Access to jQuery and DOM versions of element 
     base.$el = $(el); 
     base.el = el; 

     // Add a reverse reference to the DOM object 
     base.$el.data("yourPluginName", base); 

     base.init = function(){ 
      if(typeof(radius) === "undefined" || radius === null) radius = "20px"; 

      base.radius = radius; 

      base.options = $.extend({},$.yourPluginName.defaultOptions, options); 

      // Put your initialization code here 
     }; 

     // Sample Function, Uncomment to use 
     // base.functionName = function(paramaters){ 
     // 
     // }; 

     // Run initializer 
     base.init(); 
    }; 

    $.yourPluginName.defaultOptions = { 
     radius: "20px" 
    }; 

    $.fn.yourPluginName = function(radius, options){ 
     return this.each(function(){ 
      (new $.yourPluginName(this, radius, options)); 

      // HAVE YOUR PLUGIN DO STUFF HERE 


      // END DOING STUFF 

     }); 
    }; 

})(jQuery); 

난 내 자바 스크립트 로직과의 jQuery 모든 일을하는 곳 내 main.js 파일에서 사용할 수있는 빠른 jQuery 플러그인 패턴/템플릿을 찾고 있습니다.

내가하고 싶은 일은 jquery.*-plugin.js 파일을 내 웹 사이트의 일부 섹션과 부분에서만 사용할 수있는 일부 맞춤 플러그인에 사용하지 않는 것입니다.

답변

1

은 정말 당신이 필요 기능을 의존하지만, jQuery 플러그인은 단순히 (jQuery.fn 별명이 붙을) jQuery.prototype하는 방법입니다 그래서 당신은이 작업을 수행 할 수 있습니다

$.fn.myPlugin = function() { 
    // `this` refers to the jQuery instance. Put your logic in here. 
}; 

당신은 다음과 같이 호출 할 수 있습니다 :

$(".some-selector").myPlugin(); 

여기는 working example입니다.

+0

해당 플러그인 아래에서 선택기를 얻는 방법은 무엇입니까? –

+0

@ 즐라탄 - 무슨 소리 야? 플러그인 내부에서 선택기를 가져 오시겠습니까? 아니면 선택기를 없애고'jQuery'에 "정적"메소드를 가지고 있을까요? –

+0

첫 번째 단계에서 $()로 설정되는 선택기를 가져 오면됩니다. 그러나 나는 그것을 발견했다 ...'this.selector'는 그 목적을 위해 사용 가능하다. 그래서 나는 그것을 함수 몸체 밑에 매핑 할 수있다 :) 고마워! –

관련 문제