У меня есть следующие функции: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 секунд он начинает исчезать.
Обычно он работает нормально для первого вызова, но если я нажму несколько раз, он больше не работает, даже если я дам время.
Я не понимаю, почему, потому что каждый таймаут или интервал принадлежит его собственной переменной.
Определите ваши глобальные переменные вне функции. – Mojtaba
Вы никогда не перезагружаете непрозрачность элемента до 1 – MinusFour