this
을 jQuery 클릭 이벤트 핸들러에 어떻게 재정의 하시겠습니까? 나는 몇 년 전에 Edge에게 당신이 이것을 다른 것으로 묶기 위해 전달할 수있는 선택적인 매개 변수를 가지고 있었지만 더 이상 그렇지 않은 것으로 보았습니다.
1
A
답변
3
일반적인 두 가지 방법이 있습니다. 나는 jQuery.proxy이
$.fn.highlighter = function(){
this.click($.proxy(function(){
this.addClass('highlight');
}, this));
};
다른 일반적인 대안은 당신이 클릭 핸들러를 호출 함수 내에서 self
에 this
을 할당하는 것입니다 사용하는 것을 선호합니다.
$.fn.highlighter = function(){
var self = this;
this.click(function(){
self.addClass('highlight');
});
};
1
당신은 함수의 this
값을 설정 .bind()
를 사용할 수 있습니다.
var clickHandler = function() {
// your click handler
};
: 그리고
context
이 (핸들러 내에서) 당신이
this
에 바인딩 할 값입니다
$(stuff).on('click', clickHandler.bind(context));
.
참고 : 구형 브라우저에는 ES5-shim을 제공해야합니다.
관련 문제
- 1. LinkButton Click 이벤트
- 2. Click 이벤트
- 3. js.erb 파일을 다시 정의하십시오.
- 4. 개체의 클래스를 다시 정의하십시오.
- 5. Flowplayer, Javascript, click 이벤트?
- 6. Jquery에서 Click 이벤트
- 7. jQuery after click 이벤트
- 8. CollapsiblePanelExtender Click 이벤트
- 9. gwt click 이벤트 문서
- 10. .NET Click 이벤트 (WinForms)
- 11. WPF TextBlock Click 이벤트
- 12. jquery : bind "click"이벤트
- 13. jquery click 이벤트 문제
- 14. jquery - click 이벤트
- 15. ListView Click 이벤트
- 16. ASP.NET + ModalPopupExtender + Click 이벤트
- 17. click 이벤트 바인딩 javascript
- 18. jQuery 질문에서 click 이벤트
- 19. Click 이벤트 하이퍼 링크
- 20. Trackwheel Click 이벤트 발행물
- 21. jQuery : .click() 이벤트 트리거링
- 22. JQuery Click 이벤트 문제
- 23. 단위 테스트를위한 메소드를 다시 정의하십시오.
- 24. 종속성 속성 값을 다시 정의하십시오.
- 25. Parsec.Token에서 "stringLiteral"토큰을 다시 정의하십시오.
- 26. Clojure 루프에서 변수를 다시 정의하십시오.
- 27. Click 이벤트 및 끌기 이벤트 사용
- 28. jquery clear click 이벤트 및이 이벤트 수정
- 29. ListGrid의 행에서 Listen Click 이벤트
- 30. C# Autocomplete Texbox Click 이벤트
'this'를 다른 것으로 바인딩하고 이벤트 처리기에서 'this'를 재정의하는 것은 두 가지 다른 작업입니다. –