gpt4 book ai didi

javascript - clearTimeout 当一个函数被多次调用时

转载 作者:行者123 更新时间:2023-11-30 08:12:48 24 4
gpt4 key购买 nike

我有一个警告消息栏,它会在用户单击特定链接时向下滑动。警报栏会在指定时间段后向上滑动。如果用户多次单击此链接,我想重置计时器,向上滑动警告栏然后再次向下滑动(重置计时器)。

$(document).ready(function(){

$('#main_container').live('click', function(){
$('.answer_yes').click (function(){


if ($('#topbar_alert').is(':visible')){

clearTimeout(slideUpTimer)

}

$('#topbar_alert').slideDown(300);
$('#topbar_alert_container').empty();
$('#topbar_alert_container').append('Alert Created!');

var slideUpTimer = setTimeout(function() {
$('#topbar_alert').slideUp(300);
},8000);

});
});

});

所以除 clearTimeout 部分外,一切正常。如果单击该链接,警告栏会向下滑动,然后在 setTimeout 完成后向上滑动。但是,如果您多次单击该链接,它不会重置警告栏。

最佳答案

你应该在当前范围之外定义 var slideUpTimer

var slideUpTimer;
$('#main_container').live('click', function(){
$('.answer_yes').click (function(){
if ($('#topbar_alert').is(':visible')){
clearTimeout(slideUpTimer)
}

$('#topbar_alert').slideDown(300);
$('#topbar_alert_container').empty();
$('#topbar_alert_container').append('Alert Created!');

slideUpTimer = setTimeout(function() {
$('#topbar_alert').slideUp(300);
},8000);
});
});

关于javascript - clearTimeout 当一个函数被多次调用时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com