我有一些JavaScript函数,它们作为触发自定义事件的<object/>
对象的事件侦听器。有问题的对象是启用JavaScript API的YouTube播放器。该documentation提供附加事件监听器此示例代码:使用element.addEventListener的正确方法
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被调用的方式相关。
功能“onytplayerStateChange”其实是一个“听众”,这恰好是一个JavaScript函数,并在那里提到,听者应括我找不到任何地方在报价中。所以不要使用引用应该是正确的方法。 – Golmaal 2012-01-16 07:19:11