今天哦,天哪哦 - 哎呀
伙计们,最好的办法:
$j('.done').append('Your services have been updated');
(那些位完成)
然后在说5秒后删除追加,这样如果一个人重新提交表格(允许),追加不会继续添加文字?即更新一次“您的服务已更新”,两次会显示“您的服务已更新您的服务已更新”但我只希望您的服务已更新以显示一次
答案 0 :(得分:20)
(function (el) {
setTimeout(function () {
el.children().remove('span');
}, 5000);
}($j('.done').append('<span>Your services have been updated</span>')));
我知道它看起来很奇怪..我这样做是为了自我控制。当调用该匿名函数时,会立即执行追加...然后将附加元素保存为el
在该匿名范围内,当timeout
在5000毫秒后触发时,该范围本身将被删除。
修改强>
我编辑了上面的函数,因此它不会破坏父元素(抱歉)
答案 1 :(得分:8)
通过递增或递减delay(#)
$j('.done').delay(2000).fadeOut(200,function() {
$(this).html('Your services have been updated').fadeIn(200);
});
答案 2 :(得分:2)
又一个解决方案:) 代码的作用是什么:
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);
});
答案 3 :(得分:1)
我知道它有点晚了,但是当我将其添加到全局功能中时,我想与大家分享我的解决方案。
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();
}
答案 4 :(得分:0)
我不确定这里的背景,但是它会起作用,比如说
<span id="special_message">Your services have been updated.</span>`
然后删除该特定ID'd标记?
答案 5 :(得分:0)
// 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(); });
答案 6 :(得分:0)
你可能会考虑Ben Alman的doTimeout插件 - http://benalman.com/projects/jquery-dotimeout-plugin/
$j('<span>Your services have been updated</span>')
.appendTo('.done')
.doTimeout( 5000, 'remove' );
答案 7 :(得分:0)
我喜欢这种在删除跨度之前使用短淡化的方法。它还会在追加之前删除先前的消息。
$("<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);
}
);