Как закрыть jgrowl вручную - PullRequest
       75

Как закрыть jgrowl вручную

5 голосов
/ 19 февраля 2010

All

Как закрыть и открыть jgrowl вручную

 jQuery("div.jGrowl").trigger("jGrowl.close");

Вышеуказанный код не работает.

Спасибо.

Ответы [ 11 ]

9 голосов
/ 08 апреля 2011

Это сработало для меня

$("div.jGrowl").jGrowl("close");
2 голосов
/ 17 октября 2013

У меня была та же проблема, потому что я добавлял набор кнопок в рычание уведомления. Один использовался для принятия уведомления, а другой - для игнорирования уведомления. Подход, который я выбрал, состоял в том, чтобы добавить обратный вызов afterOpen, а затем добавить обработчик click со ссылкой на исходный элемент close:

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');
    });
}
2 голосов
/ 12 июня 2013

Этот работал для меня, закрывая последнее уведомление:

$('div.jGrowl-close').triggerHandler('click');

Редактировать: Повышена эффективность за счет замены триггера на triggerHandler. Смотри http://api.jquery.com/triggerHandler/

2 голосов
/ 28 ноября 2010

Три варианта:

$('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');

Любой из них закроет все уведомления.Я не уверен, как закрыть отдельное уведомление.

1 голос
/ 26 января 2013

$(".jGrowl-notification:last-child").jGrowl('close');

или

$(".jGrowl-notification:last-child").trigger('jGrowl.close')

Наилучший способ закрыть уведомление, так как все обратные вызовы будут вызваны соответствующим образом.

Удаление режима обходит обратные вызовы, что меньше идеального. Также обратите внимание, что для закрытия определенного уведомления вы захотите использовать селектор, указанный выше.

Вызов метода $.fn.jGrowl() разработан для параллельного подхода с использованием виджетов jQuery.UI и стал довольно распространенным явлением, и я, скорее всего, сохраню это в будущих выпусках.

1 голос
/ 13 декабря 2012

Лучший метод -

$(".jGrowl-notification:last-child").remove();

Когда jGrowl создает уведомление, оно используется для создания двух DIV-файлов jGrowl-уведомлений, один из которых пуст. Поэтому, когда вы создаете уведомление, последнее является последним уведомлением. Поэтому вам нужно закрыть последний DIV с помощью класса jGrowl-messages.

Когда вы захотите открыть только одну заметку, используйте следующий код, который удалит предыдущую заметку и создаст новую

$(".jGrowl-notification:last-child").remove();

$.jGrowl("Hello World");
1 голос
/ 19 февраля 2010

Пространство имен появляется после события ..

так должно быть

jQuery("div.jGrowl").trigger("close.jGrowl");

обновление после комментария
Синтаксис, упомянутый в их блоге , может быть опечаткой .. (Вы попробовали его, чтобы посмотреть, работает ли он?)

Кроме этого, запрос на поддержку на странице плагинов jquery, датированный февралем 2009 года, может содержать некоторые дополнительные сведения ... посмотрите ..

0 голосов
/ 30 января 2019

Используйте функцию щелчка и перехватите событие, чтобы закрыть текущее уведомление. Например:

$.jGrowl('Hi, It's a clickable close notification', {
      click: function(e, m, o) {
        $(e).jGrowl("close");
      }
    });

Здесь e относится к событию, m для сообщения и o относится к опциям.

Проверьте это для более подробной информации.

ПРИМЕЧАНИЕ : используйте последнюю версию jgrowl lib 1.3.

0 голосов
/ 16 декабря 2014
$('#jGrowl').find('.jGrowl-close').trigger('click');
0 голосов
/ 04 января 2012

Вот еще одно решение для открытия и закрытия отдельных сообщений, использующее функцию группировки 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);
...