Все,Как закрыть jgrowl вручную
Как закрыть и открыть вручную jgrowl
jQuery("div.jGrowl").trigger("jGrowl.close");
Приведенный выше код не кажется, работает.
Спасибо.
Все,Как закрыть jgrowl вручную
Как закрыть и открыть вручную jgrowl
jQuery("div.jGrowl").trigger("jGrowl.close");
Приведенный выше код не кажется, работает.
Спасибо.
Пространство имен приходит после того, как событие ..
поэтому она должна быть
jQuery("div.jGrowl").trigger("close.jGrowl");
обновление после комментария
Синтаксис упоминается в своем блоге может быть опечатка .. (вы попробовали, чтобы убедиться, что он работает?)
Другое t хань, что запрос на поддержку на странице JQuery плагинов от фев 2009 может содержать еще некоторое понимание .. посмотрим ..
Три варианта:
$('div.jGrowl').find('div.jGrowl-notification').children().parent().remove();
$('div.jGrowl').find('div.jGrowl-notification').trigger('jGrowl.close');
$('div.jGrowl').find('.jGrowl-close').trigger('jGrowl.close');
Любой из них закрыть все уведомления. Однако я не знаю, как закрыть индивидуальное уведомление.
Это работало для меня
$("div.jGrowl").jGrowl("close");
Этот синтаксис, по-видимому, больше не работает. Все, что он сделал для меня, был pop another jGrowl с сообщением «close» – Kristopher
Это все еще работает для меня для последней версии – Arda
Вот решение, чтобы закрыть отдельные уведомления:
testGrowl = function() {
var ao, close;
close = function(e) {
console.log('close');
return $(e).find('.jGrowl-close').trigger('click');
};
ao = function(e) {
return setTimeout(function() {
return close(e);
}, 1500);
};
return $.jGrowl("Hello world!", {
sticky: true,
afterOpen: ao
});
};
setTimeout(testGrowl, 100);
setTimeout(testGrowl, 1000);
Вот еще одно решение для открытия и закрытия отдельных сообщений, которые используют jGrowl в функции группировки:
var nextGroupID = 1;
var addMessage = function(message)
{
var groupID = nextGroupID++;
$.jGrowl(message, { sticky: true, group: "group-" + groupID });
return groupID;
};
var removeMessage = function(groupID)
{
$("div.jGrowl-notification.group-" + groupID).trigger("jGrowl.close");
}
// Example usage
addMessage("The first test message");
var testID = addMessage("The second test message");
setTimeout(function() {removeMessage(testID);}, 4000);
Лучший метод
$(".jGrowl-notification:last-child").remove();
Когда jGrowl создать уведомление его использует для создания два jGrowl-уведомления DIV, где один пуст. Поэтому, когда вы создаете уведомление, последнее является последним уведомлением. Поэтому вам нужно закрыть последний DIV с помощью класса jGrowl-notification.
Когда бы вы хотели открыть только одна нота использовать следующий код, который удалит предыдущую ноту и создать новый один
$(".jGrowl-notification:last-child").remove();
$.jGrowl("Hello World");
$(".jGrowl-notification:last-child").jGrowl('close');
или
$(".jGrowl-notification:last-child").trigger('jGrowl.close')
Являются наилучшими способами закрыть уведомление, так как все обратные вызовы будут инициированы соответствующим образом.
Извлечение режима обходит обратные вызовы, которые являются менее идеальными.Также обратите внимание, что для закрытия специального уведомления вы захотите использовать селектор, отмеченный выше.
Метод вызова $.fn.jGrowl()
предназначен для параллельного подхода виджета jQuery.UI и стал довольно распространенным местом, и я, скорее всего, сохраню его в будущих выпусках.
Это один работал для меня, закрытия последнего уведомления:
$('div.jGrowl-close').triggerHandler('click');
Edit: Повышение эффективности путем замены триггера с triggerHandler. См. http://api.jquery.com/triggerHandler/
У меня была такая же проблема, потому что я добавлял набор кнопок в уведомление о рычаге. Один из них использовался для принятия уведомления, а другой использовался для игнорирования уведомления. Подход, который я взял был добавить afterOpen
обратный вызов, а затем добавить click
обработчик со ссылкой на оригинальный близкий элемент:
afterOpen: function(e,m,o){
$(e).find("#acceptInvitation").click(function() {
alert("Invite Accepted");
});
$(e).find("#declineInvitation").click(function() {
$(e).children("div.jGrowl-close").trigger('click');
});
}
$('#jGrowl').find('.jGrowl-close').trigger('click');
Пожалуйста, добавьте описание для yuor answer – zohar
@Gaby: > [По] (Http: //www.stanlemon .netindex.jgrowl.html) к этому это, как я сказал – Hulk
странный .. возможно, это опечатка ... вы попробовали? –
да он не работает .. – Hulk