gpt4 book ai didi

javascript - clearTimeout() 未按预期运行

转载 作者:行者123 更新时间:2023-12-03 03:45:08 25 4
gpt4 key购买 nike

我有一个带有子菜单的菜单,当您单击按钮时,该子菜单会滑出。我希望它在 7 秒后滑回(如果尚未重新单击)。我想在重新单击时重置计时器,以便在再次单击时从头开始。

    $(".connect").click(function(){
if($(".slidy-social").css("right") === "0px"){
$(".slidy-social").animate({right: "200px"}, 250);
var timer = setTimeout(function(){
if($(".slidy-social").css("right") !== "0px"){
$(".slidy-social").animate({right: "0px"}, 250)
}
}, 7000)
}
else{
clearTimeout(timer);
$("#social").animate({right: "0px"}, 300);
}
})

最佳答案

问题在于,每次调用点击监听器函数时,您都会创建一个新的 timer 变量。您需要在函数外部声明变量,以便每次都是相同的变量。

var timer;
$(".connect").click(function() {
if ($(".slidy-social").css("right") === "0px") {
$(".slidy-social").animate({
right: "200px"
}, 250);
timer = setTimeout(function() {
if ($(".slidy-social").css("right") !== "0px") {
$(".slidy-social").animate({
right: "0px"
}, 250)
}
}, 7000)
} else {
clearTimeout(timer);
$("#social").animate({
right: "0px"
}, 300);
}
})

关于javascript - clearTimeout() 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45427447/

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