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