Показать сообщение отдельно
  #3 (permalink)  
Старый 11.07.2008, 19:07
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

this, который в
$('id').bind('click', function() {
        alert(this);
});

При использовании addEventListener все работает отлично, this - возвращает объект, который мы получаем при вызове первой функции $('id'), но при использовании attachEvent, ссылка this - ведет на объект window. Чтобы выполнить добавляемую в обработчик события функцию в контексте объекта, к которому она привязывается, записываем attachEvent следующим образом:
obj.attachEvent('on' + type, function() {listener.apply(obj);});

Но теперь получается, что если мы передадим имя функции в метод bind:
$().bind('click', fn);
то для ИЕ невозможно выполнить detachEvent, т.к. у нас всегда привязывается абстрактная функция... Вот я и спрашиваю как переделать код, чтобы внутри метода bind, объект к которому привязывается функция был доступен по ссылке this, т.е. привязываемая функция выполнялась бы в контексте этого объекта, но можно бы было выполнить detachEvent :rolleyes:

Последний раз редактировалось Octane, 11.07.2008 в 19:44.
Ответить с цитированием