我有一些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