gpt4 book ai didi

javascript - 延迟()第二次不起作用jquery

转载 作者:行者123 更新时间:2023-11-29 10:41:17 24 4
gpt4 key购买 nike

我对 jquery 的 delay() 有疑问。我正在使用带有变量的 if、else if 条件:

var myvar = false;

function OpenAnimation(Clicked) {

if (myvar == true) {

$(Clicked).removeClass('open_peak');

myvar = false;

} else if (Clicked == 'an ID') {

$(Clicked).delay(500).queue(function () { $(this).addClass('open_peak') });

myvar = true;

}

该函数可以正常处理传入的每个 ID。但是我第二次为一个已经拥有并“丢失”.open_peak(顺便说一下,它是 OnClick)的 ID 运行函数时,.open_peak 不适用于该元素。

所以当我打开一个窗口时,它会:

} else if (Clicked == 'an ID') {

$(Clicked).delay(500).queue(function () { $(this).addClass('open_peak') });

myvar = true; //which tells me that a window(element) is indeed open

}

当我关闭它时:

 if (myvar == true) {

$(Clicked).removeClass('open_peak');

myvar = false;//No window is opened

}

我那里有更多的代码,但是 .open_peak 不适用。

这是一个 JSFiddle,您可以在其中看到问题:http://jsfiddle.net/at3eyLoL/

最佳答案

来自 jQuery 文档:

Note that when adding a function with .queue(), we should ensure that .dequeue() is eventually called so that the next function in line executes.

添加 $( this ).dequeue();在延迟后调用的函数中。

关于javascript - 延迟()第二次不起作用jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510620/

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