Javascript Jquery仅隐藏最后一个通知
我用javascript/jquery为我的仪表板创建了一个通知系统,但是当我同时插入3个通知时,它只会隐藏最后插入的通知Javascript Jquery仅隐藏最后一个通知,javascript,jquery,notice,Javascript,Jquery,Notice,我用javascript/jquery为我的仪表板创建了一个通知系统,但是当我同时插入3个通知时,它只会隐藏最后插入的通知 function NewNotice(title, message, bool){ if(bool){ var color = "green"; var icon = "checkmark"; } else {
function NewNotice(title, message, bool){
if(bool){
var color = "green";
var icon = "checkmark";
} else {
var color = "red";
var icon = "cancel-2";
}
$('.notices').append('<div class="bg-color-'+ color +'">');
$n = $('.notices').children().last();
$n.append('<a href="#" class="close">');
$n.append('<div class="notice-icon"> <i class="icon-'+ icon +' fg-color-white" style="font-size:32px;"></i> </div>');
$n.append('<div class="notice-image"> <i class="icon-'+ title +' fg-color-white" style="font-size:48px;"></i> </div>');
$n.append('<div class="notice-header fg-color-white">'+ title +'</div>');
$n.append('<div class="notice-text">Message: "'+ message +'" was posted.</div>');
$n.animate({right:'+=380'}, 500);
var t = setTimeout(function(){
$n.animate({
right:'-=380'
}, 500, function(){
$n.hide();
});
},5000);
}
函数NewNotice(标题、消息、bool){
如果(bool){
var color=“绿色”;
var icon=“选中标记”;
}否则{
var color=“红色”;
var icon=“取消-2”;
}
$('.notices')。追加('');
$n=$('.notices').children().last();
$n.append(“”);
$n.append(“”);
$n.append(“”);
$n.append(“”+标题+“”);
$n.append('消息:'+Message+'已发布');
$n.animate({右:'+=380'},500);
var t=setTimeout(函数(){
$n.animate({
右:'-=380'
},500,函数(){
$n.隐藏();
});
},5000);
}
我猜它只会隐藏最后一个,因为我正在缓存选择器,但我不知道如何解决这个问题。问题是,您使用的
$n
变量没有声明它是函数,因此它会在全局范围内自动创建,这意味着在setTimeout
函数中,$n指的是全局变量,该变量将由运行NewNotice
的最近时间设置
要修复它,只需在创建变量时将var
添加到
var $n2 = $(this);
var $n = $('.notices').children().last();
n2美元实际上是没用的,我会把它去掉。我会尽快试试这个!