2012-10-24 4 views
3

"공식적인"문서 http://docs.jquery.com/Plugins/Authoring#Namespacing은 아래와 같이 메소드가 jQuery 플러그인에 추가되어야한다고 명시하고 있습니다. 나는이 디자인 패턴이 자주 구현되는 것을 보지 못했다. 다른 플러그인이 var 메소드를 사용하는 것처럼 충돌이있을 수 있습니다. 이것은 정말로 선호되는 방법입니까, 아니면 제가 다르게해야합니까?jquery 플러그인에 메소드를 추가하는 가장 좋은 방법

(function($){ 

var methods = { 
    method1: function(options) {}, 
    method2: function() {} 
}; 

$.fn.tooltip = function(method) { 
    if (methods[method]) { 
    return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1)); 
    } else if (typeof method === 'object' || ! method) { 
    return methods.init.apply(this, arguments); 
    } 
}; 

})(jQuery); 
+0

나는 다른 답변이나 의견을받지 못했기 때문에, prodigitalson의 대답은 완전히 일치합니다. – user1032531

답변

0

이 방법을 공개적으로 허용하려면 예를 선택하는 것이 좋습니다. 플러그 인이 매우 복잡한 경우 가능하고 때로는 권장되는 다른 옵션은 실제로 메소드 해시를 사용하는 대신 전체 생성 객체를 만드는 것입니다. 각 인스턴스의 루트 요소에 대해 상태를 관리 할 수 ​​있기 때문에 더 이상 일을 처리 할 필요가 없다는 것을 알지 못합니다. 당신이 오픈 소스 위하여려고하는 경우에

< 호언 장담 > 또한, 내가 플러그인의 많은 후반의 악화 있었다 ... 그것은 당신이 적어도 당신이 수행 한 모든 바인딩을 해제 할 수있는 destroy 방법을 포함하는지 확인하십시오. </rant >

+1

감사합니다. prodigitalson. 파괴 방법을 포함 할 것을 약속드립니다! – user1032531

+0

w00t !!!!!!!!!!!!!!!! 사실, * 흥분된, 그 빌어 먹을 길이 :-) – prodigitalson

관련 문제