繁体   English   中英

如何使用延迟添加/删除类

[英]How to use delay to add/remove classes

在.click(function(){});内部; 我试图让它删除一个类,添加另一个,延迟一秒钟,然后再次反转所有内容。 对我来说似乎很简单,但我对这个坏的功能感到困惑:

$(document).ready(function() {
    var items = $(".tabs-group .sidebar ul li:not(:last-child) a");
    var prompt = $(".prompt-button");
    prompt.click(function () {
        $(items).removeClass("pulse").addClass("solid").delay(1000).removeClass("solid").addClass("pulse");
    });
});

帮助表示赞赏,谢谢!

尝试将后续操作放在队列中。 否则,removeClass和addClass不会添加到FX队列中,以通过直接应用延迟来延迟它。

$(items).removeClass("pulse").addClass("solid").delay(1000).queue(function(){
                               $(this).removeClass("solid").addClass("pulse");
});

您可以这样做:

$(items).toggleClass("pulse solid").delay(1000).queue(function(){
                               $(this).toggleClass("pulse solid");
});

即使PSL答案可能是最好的解决方案,也可以选择替代方法。 您可以创建自己的延迟函数,因为.delay()仅对排队的元素起作用。

这是一个例子:

(function($){
    if($ && !$.fn.wait){
        $.fn.wait = function(time, fn){
            setTimeout(fn.bind(this), time);
            return this;
        }
    }
})(jQuery)

将其插入文件后,您可以这样称呼它:

$(items).removeClass("pulse").addClass("solid").wait(1000, function(){
     this.removeClass('solid');
})

查看实际代码

您的物品中有额外的$

$(document).ready(function() {
    var items = $(".tabs-group .sidebar ul li:not(:last-child) a");
    var prompt = $(".prompt-button");
    prompt.click(function () {
        items.removeClass("pulse").addClass("solid").delay(1000).removeClass("solid").addClass("pulse");
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM