Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery仅隐藏最后一个通知_Javascript_Jquery_Notice - Fatal编程技术网

Javascript Jquery仅隐藏最后一个通知

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 {

我用javascript/jquery为我的仪表板创建了一个通知系统,但是当我同时插入3个通知时,它只会隐藏最后插入的通知

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美元实际上是没用的,我会把它去掉。我会尽快试试这个!