Правильный способ использования element.addEventListener - PullRequest
3 голосов
/ 16 января 2012

У меня есть несколько функций JavaScript, которые ведут себя как прослушиватели событий для объекта <object/>, который запускает пользовательские события.Рассматриваемый объект - проигрыватель YouTube с поддержкой JavaScript API.В документации приведен пример кода для подключения прослушивателя событий:

function onYouTubePlayerReady(playerId) {
  ytplayer = document.getElementById("myytplayer");
  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
  // note: quotes used ----------------------^---------------------^
  // note: callback function defined in an arbitrary location
}
function onytplayerStateChange(newState) {
   alert("Player's new state: " + newState);
}

Однако в соответствии с примерами addEventListener, которые я видел в других местах, не предлагается использоватьцитаты:

function onytplayerStateChange(newState) {
   alert("Player's new state: " + newState);
}
function onYouTubePlayerReady(playerId) {
  ytplayer = document.getElementById("myytplayer");
  // note: callback function defined EARLIER
  ytplayer.addEventListener("onStateChange", onytplayerStateChange);
}

Так какой метод является правильным?Первый из них работал во всех браузерах, но в последнее время я замечаю странные проблемы, и мне интересно, связаны ли эти проблемы со способом вызова addEventListener.

1 Ответ

3 голосов
/ 16 января 2012

Поскольку метод addEventListener на самом деле представляет собой метод, представленный во флэш-плеере, а не собственный addEventListener, он действительно зависит от реализации кода AS3 внутри YTPlayer.

Я бы пошел с документацией и использовал кавычки

...