我有以下功能: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