Ember를 사용하는 동안 누군가가 div 외부에서 클릭을 처리하는 더 좋은 방법을 찾았 으면 좋겠습니까? 전역 클릭 핸들러를 사용하여 jQuery 방법을 알았으므로 특정 인스턴스에 대해 수행 할 각 작업을 지정해야하지만 누군가 Ember보기에서이를 선언하는 방법을 찾길 바란다. 또한, 나는 'div에 탭 인덱스를주고 on blur를 사용하려고 시도했지만 Ember 액션은 이것을 허용하지 않는 것 같습니다.Ember -보기 외부에서 클릭 클릭
7
A
답변
7
감사합니다. 다시 가서 jQuerys .on
에 대한 설명서를 다시 읽었습니다. 나는 네임 스페이스에서 이벤트를 알 수 있다는 것을 몰랐다. 그래서 저는 두 가지 의견을 모두 취해이를 이와 같이 결합했습니다.
didInsertElement: function() {
Ember.run.next(this, 'attachClickHandler');
},
attachClickHandler: function(){
var temp = this;
$(window).on("click." + temp.elementId, function (e){
//...event here
});
},
detachClickHandler: function(){
$(window).off("click." + this.elementId);
},
이렇게하면 이벤트를 각보기 인스턴스별로 지정할 수 있습니다. 이는 내가 원했던 것입니다. 고마워요!
+2
'detachClickHandler()'가 뷰의'willDestroyElement' 훅에서 호출된다고 가정하고 있습니까? – Zaki
+0
이벤트 네임 스페이스에 대해 알지 못했습니다. :) –
1
그냥 구성 요소의 믹스 인을 포함 onClickElsewhere을 구현
유용 ClickElsewhereMixin을 찾을 수 있습니다()관련 문제
- 1. Ember -보기 클릭 이벤트를 사용하여 파일 입력 요소 클릭 발생
- 2. 보기 클릭
- 3. jquery - div 외부에서 클릭
- 4. 보기 다음 배열 항목을 클릭
- 5. 클릭 한 경로로 애플리케이션 스크롤 Ember js
- 6. 클릭 동작시 DIV 클래스 변경 Ember
- 7. 외부에서 Ember- 데이터를 다시로드하십시오.
- 8. 모달 대화 상자 외부에서 트랩 마우스 클릭
- 9. .setBackgroundColor()가 클릭 이벤트 외부에서 작동하지 않습니다.
- 10. DataGridView 외부에서 클릭 할 때 폼을 숨기기
- 11. FORM 외부에서 클릭 할 수있는 이미지 버튼
- 12. fullcalendar 이벤트 캘린더를 외부에서 클릭 할 때
- 13. 자바 스크립트를 사용하여 요소 외부에서 클릭 감지
- 14. 보기 계층 구조에서 클릭 이벤트를 사용하는 방법
- 15. 보기 내가 클릭 만들 FrameLayout이있는 부모
- 16. 보기 페이지 버튼 소스 웹 페이지 클릭
- 17. emberjs의 동일한보기에서 클릭 및 더블 클릭 처리
- 18. 보기 외부에서 터치 감지
- 19. 클릭 투명한 클릭 클릭 보내기 보내기
- 20. 클릭 제거 이내 클릭
- 21. 버튼 클릭 유지 클릭
- 22. 클릭 이벤트에서 클릭 이벤트
- 23. UIWebView 클릭 이벤트 클릭
- 24. 스윙에서 자발적인 클릭 클릭
- 25. 클릭 투글 클릭 (jQuery)
- 26. 클릭 버튼을 cocos2d에서 클릭
- 27. 클릭
- 28. 클릭
- 29. 클릭
- 30. 클릭()
나는 문제가 무엇인지 이해하지 않습니다. regexp 표현식을 기반으로 이벤트를 위임 할 수 있습니다. Ember.js 문서를 살펴 보더라도 jQuery의 .on() 메소드를 활용하는 것은 중첩 된 요소와 그렇지 않은 요소의 큰 하위 집합을 따라 위임 문제를 해결하는 데 사용하는 방법이라고 설명합니다. – Ohgodwhy
['didInsertElement'] 이벤트 (http://stackoverflow.com/questions/11377215/can-i-give-the-view-a-show-up-animation-in-emberjs/11377899#11377899) 이벤트를 사용할 수 있습니다. 플러그인 등을 시작하십시오. 그리고 바인딩을 제거하기 위해 ['willDestroyElement'] (http://emberjs.com/api/classes/Ember.View.html#event_willDestroyElement)를 사용해야합니다. 또는 ['View # on'] (http://emberjs.com/api/classes/Ember.View.html#method_on)을 사용할 수 있습니다. – MilkyWayJoe