gpt4 book ai didi

javascript - 具有 onclick 动画的多个按钮 - 某些按钮未完成 setTimeout

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

我有三个具有不同 onclick 动画的按钮。单击时,它会添加“active”类来启动 CSS 动画。使用 setTimeout,它会删除该类以删除动画的最终状态,以便可以再次单击该按钮。

不幸的是,当您快速单击按钮时,某些按钮不会经过 setTimeout。

不确定到底发生了什么,但这是我的 js。

var i=0;
$('button').each(function(){
i++;
$('.btn-' + i).on('click', toggleBtn);

function toggleBtn() {
btn = this;
// btn = btn.querySelector(".btn-" + i);
btn.classList.add('active');

setTimeout(function () {
btn.classList.remove('active');
}, 3000)

}
});

这也是代码笔。 https://codepen.io/anon/pen/ZqJxZd

谢谢!

最佳答案

每次单击不同的按钮时,您都会丢失 setTimeout 引用。

一种解决方案是将 setTimeout 放在外部函数中,如下所示:

function stOut(btn) {
setTimeout(function () {
btn.classList.remove('active');
}, 3000)

}

并在函数 stOut(btn) 中调用函数toggleBtn,并将 btn 作为参数传递

关于javascript - 具有 onclick 动画的多个按钮 - 某些按钮未完成 setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52786569/

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