Нельзя присвоить переменную this
как объекту, так и элементу DOM.Я рекомендую присвоить объекту переменную, отличную от this
.
. Лучший способ получить доступ как к объекту, так и к элементу DOM будет выглядеть примерно так:
$(el).click($.proxy(function (event) {
// can reference DOM element with this i.e. $(this)
// can reference your object with the variable myObject
// i.e. $(this).val(myObject.data);
}, myObject));
или, может быть, так:
$(el).click({myObject: this}, function (event) {
//have access to $(this) and event.data.myObject, but it seems too verbose
});
Использование переменной, отличной от this
, в функции обработки событий щелчка также сделает ваш код более понятным, поскольку большинство людей ожидают, что this
будет ссылаться на элемент DOM и иметьничего общего с вашим пользовательским объектом.