我使用jGrowl显示消息和警报,我使用的datepicker短时间连续触发.change()函数三次,这意味着每次选择日期/时间都会显示三条消息,我想将其限制为一条。
我尝试过$.jGrowl.defaults.pool = 1;,但不幸的是,这只会导致消息堆叠,而不是实际上只显示一条消息。
以下是我正在使用的代码,尽管进行了检查,但目前它仍然显示3条消息:
if($('.jGrowl-notification').length == 0) {
jGrowl('message');
} else {
if ( $('.jGrowl-notification').not(':visible') ) {
jGrowl('message');
}
}(第一次显示消息时,将创建.jGrowl-notification div,当消息超时时,它将被隐藏)
如有任何帮助将不胜感激,谢谢
发布于 2012-06-22 19:16:11
可以尝试这样的东西(未测试)
jGrowl('message',{beforeOpen: function() {
if($('.jGrowl-notification').is(':visible')) {
return false;
}
}
});jGrowl查看beforeOpen和beforeClose的返回语句,返回false会停止它的继续。
另一种可能的方法是记录是否为该输入打开了咆哮。
$('#yourPicker').change(function() {
if($(this).data('hasExisting') == 0) {
jGrowl('message',{
open: function() {
$('#yourPicker').data('hasExisting',1);
},
close: function() {
$('#yourPicker').data('hasExisting',0);
}
});
}
});这种方式在输入中存储一个值,以在尝试排队另一个之前确定当前是否为它打开了一个咆哮。
https://stackoverflow.com/questions/11020085
复制相似问题