setTimeout函数不会停止执行?
我偶然发现了setTimeout的问题。
$current.removeClass(class2); setTimeout(function(){$current.css('display', 'none')},1000); if(!$current.is('#' + id)){ $('#' + id).css('display','block'); setTimeout(function(){$('#' + id).addClass(class2)}, 1000); $current = $('#' + id); }
我想在我添加css“display:none”之后执行if语句。 我怎样才能做到这一点? 我以为setTimeout会停止执行代码,然后在函数运行后继续。
你把代码放在函数内超时(代码间距也很重要……):
$current.removeClass(class2); setTimeout(function() { $current.css('display', 'none') if( !$current.is('#' + id) ) { $('#' + id).css('display','block'); setTimeout(function() { $('#' + id).addClass(class2) }, 1000); $current = $('#' + id); } },1000);
setTimeout
将在n毫秒后运行该函数,但脚本的其余部分将继续运行。
如果你希望其余代码在display:none
之后不运行,你还需要将它移动到函数中:
$current.removeClass(class2); setTimeout(function(){ $current.css('display', 'none'); if(!$current.is('#' + id)){ $('#' + id).css('display','block'); setTimeout(function(){ $('#' + id).addClass(class2); }, 1000); $current = $('#' + id); } },1000);