2012-11-27 89 views
1

Arrow_onmouseover附加了對象的'onmouseover'事件。當onmouseover事件發生時,我得到'時間軸未定義'JS錯誤。我知道這涉及到變量範圍。我該如何糾正這一點。Java腳本中的變量範圍

function startloop() 
{ 
    var changer = setInterval("changecontents();", 2000); 
    var timeline = setInterval("change();", 2000); 
} 

window.onload = startloop(); 

function arrow_onmouseover() 
{ 
window.clearInterval(timeline); 
window.clearInterval(changer); 
} 

而且是什麼稱爲功能()函數之間的差值;和功能; 。我相信這也可能與此有關,因爲它極大地影響了變量的範圍。

即是什麼

onclick="js();" and onclick="js;" or onclick="js" 

其中JS是一個定義Java腳本函數之間的區別。

回答

1

像這樣改變你的代碼。

var timeline,changer; 
function startloop() 
{ 
    changer = setInterval("changecontents();", 2000); 
    timeline = setInterval("change();", 2000); 
} 

window.onload = startloop(); 

function arrow_onmouseover() 
{ 
window.clearInterval(timeline); 
window.clearInterval(changer); 
} 

的onclick =之間的差 「JS();」和onclick =「js;」或onclick =「js」

如果你的js函數沒有任何參數來接收你可以簡單的避免()如果你想獲得日期你可以調用new Date();但是您可以簡單地調用新的Date;

+0

感謝Murali ..在函數外部聲明時間軸和換盤器可以清除錯誤,arrow_mouseover也會在鼠標懸停時觸發(使用警報消息命令進行測試),但不會阻止recurcontent的changecontents()和chnage()。它的作用就好像在函數外部聲明的變量與在startloop()中聲明的變量不同。 –

+0

JavaScript中是否有像PHP中的全局關鍵字那樣將全局範圍分配給palenthesis中的變量?赦免幻想 –

+0

Murali解決方案宣佈變量以外的變量是正確的。我在startloop函數中賦值'var'時給了它們一個局部範圍。 –