JQuery删除,5秒后添加

bqucvtff  于 2023-02-08  发布在  jQuery
关注(0)|答案(9)|浏览(224)

天啊,今天来了好多人-哎呀
伙计们,最好的办法是:

$j('.done').append('Your services have been updated');

(that位完成)
但在5秒后删除附加,这样如果一个人重新提交表单(允许),附加不会继续添加文本-即更新一次“您的服务已更新”,两次将读取“您的服务已更新您的服务已更新”,但我只希望您的服务已更新显示一次

dz6r00yl

dz6r00yl1#

您可以考虑Ben Alman的doTimeout插件-http://benalman.com/projects/jquery-dotimeout-plugin/

$j('<span>Your services have been updated</span>')
    .appendTo('.done')
    .doTimeout( 5000, 'remove' );
gzszwxb4

gzszwxb42#

// a little jQuery plugin...
(function($){ 
    $.fn.timeout = function(ms, callback)
    {
        var self = this;
        setTimeout(function(){ callback.call(self); }, ms);
        return this;
    }
})(jQuery);

// ...and how to use it.
$("<span>Your services have been updated</span>")
    .appendTo('.done')
    .timeout(5000, function(){ this.remove(); });
pinkon5k

pinkon5k3#

我喜欢这个方法,它在删除跨度之前使用一个短暂的淡出。它还在附加之前删除以前的消息。

$("<span class='js_msg'>Your services have been updated</span>")
    .appendTo($j('.done').children("span.js_msg").remove().end())
    .each(function(){
        var self = $(this);
        setTimeout(function () {
            self.fadeOut(500,function(){
                self.remove();
            });
        }, 4500); 
   }
);
vhmi4jdf

vhmi4jdf4#

$('.card').append('<div class="alert alert-warning" role="alert"> This is a warning alert—check it out!</div>').delay(1000).queue(function(){
                $('.alert').remove()})

就是这样你创建了一个名为div的元素,然后在1秒后删除div

gxwragnw

gxwragnw5#

(function (el) {
    setTimeout(function () {
        el.children().remove('span');
    }, 5000);
}($j('.done').append('<span>Your services have been updated</span>')));

我知道这看起来很奇怪......我这样做是为了自包含。当匿名函数被调用时,追加立即完成......追加的元素然后被保存为匿名作用域中的el,当timeout在5000ms后触发时,它本身被删除。

    • 编辑:**

我编辑了上面的函数,这样它就不会破坏父元素(很抱歉)

irtuqstp

irtuqstp6#

通过增加或减少delay(#)设置时间

$j('.done').delay(2000).fadeOut(200,function() {
    $(this).html('Your services have been updated').fadeIn(200);
});
hmae6n7t

hmae6n7t7#

还有另一个解决方案:)什么代码做:
1.创建隐藏元素
1.使用.“add-comment”类将其追加到元素。
1.淡入新的范围,
1.在4.5秒之后,新的跨度淡出并自身移除。

jQuery('<span />',{ style:'display:none' })
    .html('Mesaj trimis...')
    .appendTo(jQuery('.add-comment'))
    .fadeIn('slow', 
        function(){
            var el = jQuery(this);
            setTimeout(function(){
                el.fadeOut('slow',
                    function(){
                        jQuery(this).remove();
                    });
            }, 4500);
    });
aiqt4smr

aiqt4smr8#

我知道有点晚了,但我想分享给你我的解决方案,因为我添加到我的全球功能。

function alert(elem,content,type,posi){
    
    //elem - element to be inserted
    //content - content of the alert box (based from bootstrap)
    //type -  alert type
    //posi - either append or prepend    
    
    //primary, secondary, success, warning, info, danger, light, dark
    if(type == undefined)
       type = 'info';

    elem.find('.glb-alert').remove();
    var a = '<div class="alert alert-danger col-md-12 glb-alert" role="alert" >'+content+'</div>';
    
    if(posi == undefined|| posi == 'prepend')
       elem.prepend(a).find('.glb-alert').delay(1200).fadeOut();
    else if(posi == 'append')
       elem.append(a).find('.glb-alert').delay(1200).fadeOut();

}
hrysbysz

hrysbysz9#

我不确定这里的上下文,但是这样做是否有效

<span id="special_message">Your services have been updated.</span>`

然后再把那个身份标签拿掉

相关问题