jGrowl - ограничение на одно сообщение
Я использую jGrowl для отображения сообщений и предупреждений. Используемая мной программа выбора даты запускает функцию.change() три раза подряд, то есть каждый раз при выборе даты / времени отображаются три сообщения. ограничить это только одним.
я пробовал $.jGrowl.defaults.pool = 1;
но, к сожалению, это просто заставляет сообщения складываться, а не просто отображает одно сообщение.
Вот код, который я использую, на данный момент он по-прежнему отображает 3 сообщения, несмотря на проверку:
if($('.jGrowl-notification').length == 0) {
jGrowl('message');
} else {
if ( $('.jGrowl-notification').not(':visible') ) {
jGrowl('message');
}
}
(при первом отображении сообщения создается div.jGrowl-messages, затем, когда время ожидания сообщения скрыто)
Любая помощь будет высоко ценится, спасибо
1 ответ
Может попробовать что-то вроде (не проверено)
jGrowl('message',{beforeOpen: function() {
if($('.jGrowl-notification').is(':visible')) {
return false;
}
}
});
jGrowl просматривает оператор return из 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);
}
});
}
});
Этот способ сохраняет значение во входных данных, чтобы определить, открыто ли для него рычание, прежде чем он попытается поставить другого в очередь.