как передать параметры в функцию jQuery .change () - PullRequest
2 голосов
/ 03 февраля 2012

Я использую метод jQuery .change() для выполнения функции при изменении моего раскрывающегося списка. Однако, когда я пытаюсь сделать это, я получаю сообщение об ошибке

Ошибка времени выполнения Microsoft JScript: «this.ui.dropdownPhase» является нулевым или нет объектом

Я пытался использовать e, чтобы помочь получить элемент управления, но мне это не удалось, элемент управления dropdownPhase используется в ретрансляторе , поэтому мне важно точно знать, какой из них был изменен. Даже если я не могу передать точный контроль, мне по крайней мере нужно знать, какой ряд.

this.ui.dropdownPhase.change(function(e) {
    var x2 = this.ui.dropdownrPhase;                        
});

1 Ответ

2 голосов
/ 03 февраля 2012

Внутри обратного вызова change(), this устанавливается на текущий элемент DOM.Он может не совпадать с this, на который вы ссылались ранее.

Чтобы избежать этой проблемы, сохраните ссылку на внешний this в переменной с другим именем:

var me = this;    
me.ui.dropdownPhase.change(function(e) {
    var x2 = me.ui.dropdownPhase;
});
...