我有以下功能:JavaScript的setTimeout函數的行爲不正常後1個呼叫
function loadInfoBubble(aString)
{
$('#infoBubble').html('<h3>info :</h3><p>'+aString+'</p>');
infoBubble.style.display = "block";
var opacity = 9;
var vanishBlock = null;
var theTimeOut = setTimeout(function()
{
vanishBlock = setInterval(function()
{
if(opacity > 0)
{
opacity--;
}
infoBubble.style.opacity = "0."+opacity;
}, 100);
}, 7000);
var theTimeOut2 = setTimeout(function()
{
infoBubble.style.display = "none";
clearInterval(vanishBlock);
}, 9000);
}
這個功能是通過一個onclick事件鏈接到一個按鈕。 該函數應該顯示一個包含一個句子9秒的塊,並在7秒後開始消失。
第一次調用時表現正常,但如果我點擊幾次,即使我讓timeOut結束,它也不再起作用。
我不明白爲什麼,因爲每個超時或間隔屬於它自己的變量。
定義功能之外的全局變量。 – Mojtaba
你永遠不會將元素的不透明度重置爲1 – MinusFour