setAddEventListener для придания браузерам IE6-8 стандартного W3C DOM`овского метода addEventListener позволило выявить у первого некоторые недостатки. О крупных недостатках я напишу отдельно, но о паре мелких улучшений давайте поговорим сейчас.
Во-первых, я решил избавиться от необходимости вызывать метод setAddEventListener при помощи метода call. Во-вторых, я так же решил не вызывать его каждый раз для каждого объекта с указанием имени этого метода, сделав эту же функцию возвращаемым значением - это позволило вызывать её подряд для цепочки объектов, что я нахожу очень удобным.
Вот как теперь можно объявив эту функцию, сразу же в том же выражении элегантно вызвать её и для объекта window и для объекта document:
var setAddEventListener = function f(that) {
if (!('addEventListener' in that) && 'attachEvent' in that) {
//реализация
that.addEventListener = function(eventName, handler) {
//реализация
return handler;
};
that.removeEventListener = function(eventName, handler) {
//реализация
return handler;
};
}
return f;
}(window)(document);

Комментариев нет:
Отправить комментарий