我正在使用jGrowl显示消息和警报,我正在使用的日期选择器在短时间内连续三次触发.change()函数意味着每次选择日期/时间时都会显示三条消息,I我想把它限制在一个。
我已经尝试了$.jGrowl.defaults.pool = 1;
但不幸的是,这只会导致邮件堆叠,而不是实际只显示一条消息。
这是我正在使用的代码,目前它仍显示3条消息,尽管检查到位:
if($('.jGrowl-notification').length == 0) {
jGrowl('message');
} else {
if ( $('.jGrowl-notification').not(':visible') ) {
jGrowl('message');
}
}
(第一次显示消息时,会创建.jGrowl-notification div,然后当消息超时时隐藏它)
非常感谢任何帮助,谢谢
答案 0 :(得分:3)
可以尝试类似(未经测试的)
jGrowl('message',{beforeOpen: function() {
if($('.jGrowl-notification').is(':visible')) {
return false;
}
}
});
jGrowl查看beforeOpen和beforeClose的return语句,返回false会停止继续。
另一种可能的方法是记录咆哮是否对这种输入是开放的。
$('#yourPicker').change(function() {
if($(this).data('hasExisting') == 0) {
jGrowl('message',{
open: function() {
$('#yourPicker').data('hasExisting',1);
},
close: function() {
$('#yourPicker').data('hasExisting',0);
}
});
}
});
这种方法在输入中存储一个值,以确定当前是否为其设置了一个咆哮,然后再尝试对另一个进行排队。