2012-05-16 2 views
4

jQuery 플러그인 개발이 처음이에요. 아래에 나열된 두 가지 방법의 차이점에 대해 알고 싶습니다. 그리고 이것을하는 올바른 방법은 무엇입니까?jQuery 플러그인 모범 사례

(function($){ 
    $.myplugin = { 
    // plugin code 
    }; 
})(jQuery); 

그리고 두 번째는 :

(function($){ 
    $.fn.myPlugin = function() { 
    // plugin code 
    }; 
})(jQuery); 
+0

가능한 중복 [jquery - $. functionName 및 $ .fn.FunctionName 사이의 차이] (http://stackoverflow.com/questions/2845981/jquery-difference-between-functionname-and-fn-functionname) –

답변

8

첫 번째 $.myplugin(...)로 호출 될 jQuery를에 유틸리티 함수를 추가한다.

두 번째는 당신이 요소에 작용 플러그인 작업을하는 경우 $(selector).myPlugin(...)

후자를 선택이라 할 것이다 객체 jQuery를에 작용 플러그인을 추가하고,의 일부가 될 수 있습니다 함수 호출의 jQuery 스타일 "체인".

+2

+1 jQuery 유틸리티 목록은 http://api.jquery.com/category/utilities/에서 찾을 수 있습니다. jQuery 객체 플러그인을 체인 가능하게 만들려면 'this'로 참조 된 jQuery 객체를 반환해야합니다. – iambriansreed

+0

@ iambriansreed 그래, '이'를 반환하는 좋은 지적. – Alnitak

+0

기술적으로는'$ (this)'이지만 기술적 인면에서는 * this *를 알고 있다고 확신합니다. – iambriansreed

2

$ .fn은 jQuery.prototype을 가리 킵니다. 추가 한 모든 메소드 또는 특성은 jQuery 랩핑 오브젝트의 모든 인스턴스에서 사용 가능하게됩니다.

$. 뭔가가 jQuery 오브젝트 자체에 특성 또는 기능을 추가합니다.

페이지에서 DOM 요소를 처리 할 때 $ .fn.something이라는 첫 번째 형식을 사용하면 플러그인이 요소에 뭔가를 수행합니다. 플러그인은 DOM 요소와는 아무 상관이없는 경우,