2015-11-16 2 views
2

В JavaScript следующий код работает, как ожидалось:машинописи обработчик события нажатия

$("#field").click(eventHandler); 

function eventHander() { 
    invokeClassMethod(); 
    // do other stuff 
} 

Я попробовал это в машинописном и я получаю сообщение об ошибке, потому что появляется контекст «этого» изменилось на то, что это не мой класс ,

$("#field").click(this.eventHandler); 

eventHandler() { 
    this.invokeClassMethod(); 
    // do other stuff 
} 

дает мне ошибку, так как «invokeClassMethod» не определен.

Я новичок в машинописном машиностроении, поэтому кто-нибудь может рассказать мне, что случилось, и как его исправить?

ответ

2

Ах ОК ответ был прост и на самом деле сводится к тому, я, будучи незнакомы с особенностями, Javascript ... вот как я получил его на работу:

$("#field").click(() => this.eventHandler()); 

используя привязку() также работает:

$("#field").click(this.eventHandler.bind(this)); 

и JQuery прокси работает:

$("#field").click($.proxy(this.eventHandler, this)); 
Смежные вопросы