5

全て、

jgrowl を手動で閉じて開く方法

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

上記のコードは機能していないようです。

ありがとう。

4

11 に答える 11

9

これは私のために働いた

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

3つのオプション:

$('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 が通知を作成するとき、1 つが空である 2 つの jGrowl-notification DIV を作成するために使用します。したがって、通知を作成するたびに、最後の通知が最新の通知になります。したがって、最後の DIV を jGrowl-notification クラスで閉じる必要があります。

単一のメモのみを開きたい場合は、以下のコードを使用してください。これにより、前のメモが削除され、新しいメモが作成されます。

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

$.jGrowl("Hello World");
于 2012-12-12T22:50:42.593 に答える
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

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 に答える