NeiroNext
@NeiroNext

Как в JS получить элемент вызывающий функцию через обьект, а не напрямую?

Здравствуйте!
Есть необходимость добавить свой вариант Element.classList для поддержки IE7, в интернете нашел пример с использованием Object.defineProperty, но и defineProperty также нет в IE, конечно изначально лепил свой вариант, но не получается получить обьект элемента который вызывает один из методов classList'a, т.к. this указывает не на элемент а на обьект classList.
Пробовал делать примерно следующие варианты:
Element.prorotype.classList = {
  add: function(){...},
  remove: function(){...},
  ...
};

В таком варианте this внутри функций указывает на обьект, но не на элемент, что логично, но я не знаю как получить именно элемент, вызывающий эту функцию, то-есть к примеру при :
document.getElementById('someId').classList.add() в функции add получить элемент вызвавший эту функцию, то есть в данном случае элемент с указанным индексом.
Вариант вроде следующего тоже не работает:
var classList = function(){};
classList.prototype.add = function(){...};
Element.prorotype.classList = classList;

То есть в данном случае мне нужно узнать элемент вызывающий функцию classList'a.
Надеюсь более менее понятно )
Заранее спасибо тем, кто откликнется!
  • Вопрос задан
  • 611 просмотров
Решения вопроса 1
RubaXa
@RubaXa
Возьмите готовое решение (через htc): habrahabr.ru/post/133328
https://github.com/termi/ES5-DOM-SHIM
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Panya
В IE7 нельзя расширять прототип Element, так что никак.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы