HTML JQuery와 $ (이) 사용 : 고전 jQuery를에는 타이프 : 이벤트에
<div>
<button data-id="3">Click Me</button>
</div>
을 내가 할 것 :
$("div").on("click","button", test);
function test(){
alert($(this).data("id"));
}
가 클릭 된 요소의 data-id
를 얻으려면
타이프 라이터에서 (수업 시간에) 나는 다음을 사용합니다 :
class foo { ...
$("div").on("click", "button", (event) => this.test());
public test(){
alert($(this).data("id")); // "undefined"
console.log($(this));
}
....
}
클릭 한 요소가 없습니다. $(this)
이 클래스의 인스턴스입니다.
내가 뭘 잘못 했니?
잘못된 것은 아닙니다. TypeScript는 너무 유용합니다. 내부 클래스 메소드'this'는 항상 대응 객체를 참조하는 것처럼 처리됩니다. 그래서 당신은 두 가지 해결책을 가지고 있습니다 - 클릭 된 요소를'event.target' 속성으로 잡거나 그 클래스 외부에서 핸들러 함수를 정의하십시오. – raina77ow
제가 볼 수 있듯이 대부분의 답변은 불완전하거나 잘못되었습니다. 내 대답은 여기를 방문하십시오 : http://stackoverflow.com/questions/38159416/using-the-this-in-event-handler-with-typescript/38159643?noredirect=1#comment63747929_38159643 –