我想的onclick調用的函數,事件對象傳遞給函數:由封閉對象(YT),然後調用progressBarClicked然後分配onclick事件的功能
progressBarOuter.onclick = function(e) {
var x; if (!e) {
x=window.event.clientX;
}
else {
x = e.clientX
}
yt.clickedOffset = x; yt.progressBarClicked
}
所以我分配到clickedOffset使用clickedOffset var。但我實際上寧願做的是這樣的:
progressBarOuter.onclick = yt.progressBarClicked(e);
因爲它更加緊湊。問題是,即使用戶點擊了或沒有執行這一點的代碼... yt.progressBarClicked(e)。
有沒有辦法解決這個問題?
嗨,是的,我完全理解發生了什麼,只是想知道是否有一種不同的方法,我可以用來避免額外的匿名函數......但是,這progressBarOuter.onclick = function(e){yt.progressBarClicked(e);}; 似乎是一個足夠優雅的解決方案。謝謝! – 2010-09-18 08:07:21
實際上只是在做進度BarOuter.onclick = yt.progressBarClicked;已經足夠了...... progressBarClicked接收了該事件 – 2010-09-22 19:48:42