我正在使用此脚本http://ned.im/noty/ 用于显示通知
var n = noty({
text: message,
type: type,
dismissQueue: true,
force: true,
layout : "bottomLeft",
theme: 'newTheme',
maxVisible : 5
});
所以这是当前的配置,它排队了5个项目。问题是,当点击一个按钮时,我无法弄清楚如何删除显示新通知的第一个通知。 欢迎任何想法。
答案 0 :(得分:3)
好的,我使用noty.js API找出它:http://ned.im/noty/#api
首先我定义了顶级通知
var notyclose_id = $("#noty_bottomLeft_layout_container>li:first-child>.noty_bar").attr('id');
之后我收到了通知量
var noty_list_count = $("#noty_bottomLeft_layout_container li").size();
比检查此金额是否大于或等于我的通知设置
if(noty_list_count >= 5)
$.noty.close(notyclose_id);
如果是,我使用api关闭它。 :)
答案 1 :(得分:1)
正在寻找这个并最终到了这里;暂时的当前版本(3.1.0)允许您使用杀手选项:
noty({
text: 'I have just killed it',
type: 'success',
killer : true
})
看起来它“杀死”队列中的所有先前通知,使“这一个”显示为唯一的。
答案 2 :(得分:0)
您还可以考虑自动删除超时。这就是我对信息和成功消息所做的事情:它们会在3秒后自动消失(timeout: 3000
)。我永久保留错误和警告消息(用户必须单击它才能删除,timeout: false
,这是默认值。)
通过这种方式,事物堆积起来的可能性降低,并且需要较少的用户交互。减少摩擦。我不知道它是否适合你的用例。
noty({
text: 'Sucessfully persisted xy value',
layout: 'bottomRight',
type: 'success',
timeout: 3000,
animation: {
open: 'animated zoomInUp', // Animate.css class names
close: 'animated zoomOutUp' // Animate.css class names
}
});
noty({
text: 'Error while writing value xy',
layout: 'bottomRight',
type: 'error',
animation: {
open: 'animated zoomInUp', // Animate.css class names
close: 'animated zoomOutUp' // Animate.css class names
}
});
答案 3 :(得分:0)
如果你使用布局作为'topRight',那么下面给出的代码是有帮助的。
var notyclose_id = $("#noty_topRight_layout_container>li:first- child>.noty_bar").attr('id');
var noty_list_count = $("#noty_topRight_layout_container li").size();
if(noty_list_count >= 6) {
$.noty.close(notyclose_id);
}
您还需要调用$ .notyRenderer.show()来显示新消息,它已经存在,但您需要每次都调用它
if(instance.options.maxVisible > 0) {
//if($(instance.options.layout.container.selector + ' > li').length < instance.options.maxVisible) {
$.notyRenderer.show($.noty.queue.shift());
//}
//else {
//}
}