2011-08-05 5 views
10

jquery 사용자 플러그인을 개발했으며 사용할 방법을 실제로 이해할 수 없습니다. 내가 이벤트를 트리거 할 _trigger 사용해야하는 JQuery와 UI를 문서에 따르면,이 핸들러가jquery ui _trigger vs trigger

$("#id").pluginname({ 
    click: function(){ 
     //called when clicked 
    } 
}); 

같은 플러그인을 초기화 할하지만 나중에이 이벤트에 더 많은 청취자를 연결하려는 경우 내가 할 수 없습니다 수 있습니다 그렇게 할 방법을 찾으십시오. jquery bind를 사용하려고하는데 작동하지 않습니다. 예 :

$("#id").bind("click", function(){ 
    //This does not get fired on click if using _trigger 
}) 

내가 지금까지 가지고있는 유일한 해결책은 모두 불이지만, 가지 이상한 느낌. 내 코드는 작업에 다음을 수행해야합니다

$("#id").pluginname({ 
    click: function(){ 
    //called when my plugin uses this._trigger('click') 
    } 
}).bind(function(){ 
    //called when my plugin uses this.element.trigger('click') 
}); 

하는 I 사용자 정의 이벤트를 사용하고 있지만,이 질문에 대한 관련라고 생각하지 않았다. _trigger()를 사용할 때 누구나 이벤트 체인을 사용하는 방법에 대한 아이디어가 있습니까?

답변

10

이 같은 결합한다 : 위젯을 파괴 할 때 이벤트가 연산을 청소받을 수 있도록

$("#id").bind("pluginnameclick", function(){ 
+0

안녕 응답

희망에 의해 정리되지 않는 이벤트 바인딩을 해제해야,이를 얻을 수 아니에요 더 잘 이해하기 위해 읽을 수있는 문서에 대한 언급이 있습니까? – Tommy

+0

흠. 죄송합니다. 기억이 안납니다. 사용해보기 - http://www.erichynds.com/jquery/tips-for-developing-jquery-ui-widgets/ ("dialogopen"으로 검색) – bullgare

+6

안녕하세요, 답변 해 주셔서 감사합니다. 다행히도 이벤트 이름이 소문자로 변경되었다고 말하는 페이지에 대한 설명을 발견했습니다. 이 경우의 나의 예는 내가 낙타의 사건 이름을 가진 사건을 가지고 있다는 것을 알아 차리지 못했다. 그러나 그것은 당신의 제안이 정확하다는 것을 의미합니다. 이 문제에 대해 저에게 많은 도움을 주신 것에 대해 감사드립니다. – Tommy

4

당신이 할 this._onthis._trigger를 사용해야합니다.

가, 그렇지 않으면 당신은 자신이나 그렇지 않으면 위젯이 브라우저의 가비지 컬렉션이 질문을

+0

이 문제에 관한 문서가 있는지 궁금하십니까? – Giraldi