Я предполагаю, что вы все еще используете прототип и добавили jQuery без конфликта, так что $ () - это метод прототипа, а $ j () - это метод jQuery.
Быстрый ответ
Вам нужно только изменить метод init.
init: function(txtOneId, txtTwoId, lblResultId, ancAddId) {
this.txtOneId = txtOneId;
this.txtTwoId = txtTwoId;
this.lblResultId = lblResultId;
this.ancAddId = ancAddId;
var handler = function(event){ event.data.addResult(event) };
$j(this.txtOneId).bind('keyup', this, handler);
$j(this.txtTwoId).bind('keyup', this, handler);
}
Объяснение
В Prototype вы использовали функцию bindAsEventListener, чтобы эта ссылка была доступна при получении события.
Для jQuery вы можете передать эти данные события с помощью метода связывания, используя следующий синтаксис (из jquery api ):
.bind( eventType [, eventData], handler(eventObject) );
Применительно к вашему коду с использованием анонимной функции это разрешается до:
$j(this.txtOneId).bind('keyup', this, function(event){ event.data.addResult(event) });
В этом случае мы связываем событие 'keyup' с текстовыми элементами, передаем ссылку this как eventData, а затем в функции-обработчике мы ссылаемся на eventData (this) с помощью event.data для выполнения this.addResult (событие) способ.