2012-06-22 4 views
0

미리보기에 감사드립니다.emberjs의 willDestroyElement()와 .off() 사용

기본적으로, 나는 전화 didInsertElement() 나는 정중 개발을하고 willDestroyElement를 사용하여 $(document).off(...)를 호출하기 위해 노력하고있어 DOM $(document).on(...)

을 이벤트를 결합하고있다.

그러나 여러 가지를 바운드 할 수 있으므로 $(document)에 제거 할 기능을 지정해야합니다. 나는이 작업을 수행 할 때, jQuery를는 엠버의 this는 자신의 HTMLElement

JsFiddle와 탈취 :http://jsfiddle.net/brennan/H65Ax/

가이 일을 더 나은 방법이 있나요?

+0

당신이 전체'$ (문서) CSTE 연구진 (...)''$ (문서) .OFF를 (하고있는 이유가 궁금합니다 ...)'처음에는? 이것의 최종 목적은 무엇입니까? – pangratz

+0

안녕하세요, @pangratz 나는 그것이 드롭 다운 자체의 외부에 아무것도 클릭 드롭 다운을위한 것이라고 믿습니다. 이제 특정 뷰에 대해 드래그 앤 드롭 파일 업로드를 추가하는 데이 동일한 방법을 사용합니다. 물론, 나는 이상한 방법으로 이것을하고 더 나은 옵션이 있는지 알고 싶다. 감사! –

답변

1

은 다음과 같이 코드를 수정

didInsertElement: function(){ 
    var self = this; 
    //storing `click` handler on new property `addedListener` 
    $(document).off('click', self.addedListener = function(){ 
     self.set('isActive', false); 
    }); 
}, 
willDestroyElement: function(){ 
    var self = this; 
    $(document).off('click', self.addedListener); 
}, 
+0

굉장합니다. 정말 고맙습니다. –