5

全部,

如何手动关闭和打开 jgrowl

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

上面的代码似乎不起作用。

谢谢。

4

11 回答 11

9

这对我有用

$("div.jGrowl").jGrowl("close");
于 2011-04-08T13:20:35.607 回答
2

我遇到了同样的问题,因为我在咆哮通知中添加了一组按钮。一个用于接受通知,另一个用于忽略通知。我采用的方法是添加一个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');
    });
}
于 2013-10-17T00:12:25.980 回答
2

这个对我有用,关闭了最后一个通知:

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

编辑:通过将触发器替换为 triggerHandler 来提高效率。见http://api.jquery.com/triggerHandler/

于 2013-06-12T14:16:17.393 回答
2

三个选项:

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

他们中的任何一个都会关闭所有通知。不过,我不确定如何关闭单个通知。

于 2010-11-27T21:51:12.050 回答
1

命名空间出现在事件之后..

所以应该是

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

评论后更新
他们博客中提到的语法可能是错字..(你试过看看它是否有效?)

除此之外,2009 年 2 月的 jquery 插件页面上的支持请求可能包含更多见解.. 看看..

于 2010-02-19T11:17:10.447 回答
1

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

或者

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

是关闭通知的最佳方式,因为所有回调都会相应地触发。

删除模式会绕过回调,这不太理想。另请注意,要关闭特定通知,您将需要使用上面提到的选择器。

$.fn.jGrowl()方法调用旨在与 jQuery.UI 的小部件方法并行,并且已成为相当普遍的地方,我很可能会在未来的版本中保持这一点。

于 2013-01-26T04:18:54.503 回答
1

最好的方法是

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

当 jGrowl 创建通知时,它用于创建两个 jGrowl 通知 DIV,其中一个为空。因此,当您创建通知时,最后一个通知就是最新的通知。所以你需要用 jGrowl-notification 类关闭最后一个 DIV。

当您只想打开单个笔记时,请使用以下代码,这将删除上一个笔记并创建一个新笔记

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

$.jGrowl("Hello World");
于 2012-12-12T22:50:42.593 回答
0

这是使用 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);
于 2012-01-04T00:36:26.663 回答
0

这是关闭单个通知的解决方案:

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);

CoffeeScript 和对话框在这里

于 2011-12-07T09:12:06.040 回答
0

使用 click 函数并捕获事件以关闭当前通知。例如:

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

这里e是指事件,m是消息,o是选项。

检查以获取更多详细信息。

注意:使用最新的 jgrowl lib 1.3 以后。

于 2019-01-30T05:55:19.150 回答
-1
$('#jGrowl').find('.jGrowl-close').trigger('click');
于 2014-12-16T07:49:45.333 回答