использование apply / call на собственных методах JavaScript в webkit - PullRequest
0 голосов
/ 06 августа 2011

Я пытаюсь вызвать addEventListener через apply с кодом ниже, но я получаю «TypeError: Type error» в консоли webkit.

addEvent = (function (handler) {
  return function (element, event, fn) {
    handler.apply(element, [event, fn, false]);
  };
}(addEventListener || attachEvent));

Я пробовал применить и вызвать, чтобы вызвать метод, но безрезультатно. Я упускаю что-то очевидное или пытаюсь сделать что-то, чего нельзя, по какой-то причине, которую я еще не знаю?

Другая статья немного говорит об этом, но не совсем так, как я пытаюсь с этим работать; Использование функций собственного кода в качестве объектов JavaScript в WebKit .

1 Ответ

1 голос
/ 06 августа 2011

Другой способ сделать это (правильно - как отмечает Crescent Flash) заключается в следующем:

addEvent = (function () {   
  return addEventListener ? 
    function (element, event, fn) {
      element.addEventListener (event, fn, false); 
    } :
    function (element, event, fn) { 
      element.attachEvent ('on' + event, fn); 
    };
}) ();

Это можно было бы расширить, чтобы уменьшить другие различия между двумя моделями событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...