所有
如何手动关闭和打开jgrowl
jQuery("div.jGrowl").trigger("jGrowl.close");
上面的代码似乎不起作用。
感谢。
答案 0 :(得分:9)
这对我有用
$("div.jGrowl").jGrowl("close");
答案 1 :(得分: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');
其中任何一个都会关闭所有通知。不过,我不确定如何关闭个人通知。
答案 2 :(得分:2)
这个对我有用,关闭了最后一个通知:
$('div.jGrowl-close').triggerHandler('click');
编辑:通过用triggerHandler替换触发器来提高效率。见http://api.jquery.com/triggerHandler/
答案 3 :(得分:2)
我遇到了同样的问题,因为我在咆哮通知中添加了一组按钮。一个用于接受通知,另一个用于忽略通知。我采用的方法是添加一个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');
});
}
答案 4 :(得分:1)
命名空间出现在事件之后..
所以它应该是
jQuery("div.jGrowl").trigger("close.jGrowl");
评论后 更新
他们的博客中提到的语法可能是一个错字..(你试过看它是否有用吗?)
除此之外,2009年2月的jquery插件页面上的支持请求可能包含更多见解..看看..
答案 5 :(得分:1)
最好的方法是
$(".jGrowl-notification:last-child").remove();
当jGrowl创建通知时,它用于创建两个jGrowl-notification DIV,其中一个为空。因此,当您创建通知时,最后一个是最新通知。所以你需要用jGrowl-notification类关闭最后一个DIV。
如果您只想打开单个音符,请使用以下代码,这将删除之前的音符并创建一个新音符
$(".jGrowl-notification:last-child").remove();
$.jGrowl("Hello World");
答案 6 :(得分:1)
$(".jGrowl-notification:last-child").jGrowl('close');
或
$(".jGrowl-notification:last-child").trigger('jGrowl.close')
是关闭通知的最佳方式,因为所有回调都会被相应触发。
删除模式会绕过回调,这不太理想。另请注意,要关闭特定通知,您需要使用上述选择器。
$.fn.jGrowl()
方法调用旨在与jQuery.UI的小部件方法并行,并且已经变得相当普遍,我很可能会在将来的版本中保留它。
答案 7 :(得分: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);
答案 8 :(得分: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);
答案 9 :(得分:0)
使用单击功能并捕获事件以关闭当前通知。 例如:
$.jGrowl('Hi, It's a clickable close notification', {
click: function(e, m, o) {
$(e).jGrowl("close");
}
});
此处 e 表示事件,消息表示 m ,而 o 表示选项。
检查this了解更多详细信息。
注意:使用最新的jgrowl lib 1.3或更高版本。
答案 10 :(得分:-1)
$('#jGrowl').find('.jGrowl-close').trigger('click');