2010-02-19 9 views
5

Alle schließen,Wie ein jgrowl manuell

Wie ein jgrowl manuell

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

Der obige Code schließen und zu öffnen scheint nicht zu funktionieren.

Danke.

Antwort

1

Der Namespace kommt nach der Veranstaltung ..

so sollte es nach dem Kommentar
Die Syntax in ihrem Blog erwähnt

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

Update sein könnte ein Tippfehler sein .. (Haben Sie es ausprobiert, um zu sehen, ob es funktioniert?)

Andere t han, dass vom eine Supportanfrage bei jquery plugins Seite Februar 2009 etwas mehr Einblick .. haben ..

einen Blick enthalten
+0

@Gaby: > [Laut] (http: //www.stanlemon .netindex.jgrowl.html) dazu ist es wie gesagt – Hulk

+0

komisch .. vielleicht ist es ein Tippfehler ... hast du es ausprobiert? –

+0

ja es funktioniert nicht .. – Hulk

2

drei Optionen:

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

Alle alle Benachrichtigungen von ihnen schließen. Ich bin mir nicht sicher, wie ich eine individuelle Benachrichtigung schließen kann.

9

Das ist für mich gearbeitet

$("div.jGrowl").jGrowl("close"); 
+0

Diese Syntax scheint anscheinend nicht mehr. Alles, was es für mich getan hat, war Pop ein anderes jGrowl mit einer Nachricht "nah" – Kristopher

+0

Dies funktioniert immer noch für mich für die neueste Version – Arda

0

Hier eine Lösung ist, einzelne Benachrichtigungen zu schließen:

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 and dialog here.

0

Hier ist eine andere Lösung zum Öffnen und Schließen einzelner Nachrichten, die jGrowl der Gruppierung Funktion verwendet:

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

Die beste Methode ist

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

Wenn jGrowl eine Benachrichtigung erstellen Sie es verwenden, um zwei jGrowl-Benachrichtigung zu erstellen Divs, wo man leer ist. Wenn Sie also eine Benachrichtigung erstellen, ist die letzte die letzte Benachrichtigung. Sie müssen also den letzten DIV mit der jGrowl-Benachrichtigungsklasse schließen.

Wann immer wollte Sie nur einzelne Note den folgenden Code verwenden, um öffnen, die die vorherige Note entfernen wird, und erstellen Sie eine neue

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

$.jGrowl("Hello World"); 
1

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

oder

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

Die besten Möglichkeiten zum Schließen einer Benachrichtigung, da alle Rückrufe entsprechend ausgelöst werden.

Das Entfernen des Modus umgeht die Rückrufe, was weniger als ideal ist.Beachten Sie außerdem, dass Sie zum Schließen einer bestimmten Benachrichtigung den oben genannten Selektor verwenden möchten.

Der Methodenaufruf $.fn.jGrowl() wurde entwickelt, um den Widget-Ansatz von jQuery.UI zu parallelisieren, und ist zu einem ziemlich verbreiteten Ort geworden, und ich werde ihn wahrscheinlich in zukünftigen Versionen beibehalten.

2

Ich hatte das gleiche Problem, weil ich eine Reihe von Schaltflächen in der Growl-Benachrichtigung hinzugefügt wurde. Einer wurde verwendet, um die Benachrichtigung zu akzeptieren, und der andere wurde verwendet, um die Benachrichtigung zu ignorieren. Der Ansatz, den ich nahm, war ein afterOpen Rückruf hinzufügen und dann einen click Handler mit dem Verweis auf das ursprüngliche schließen Element hinzufügen:

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'); 
    }); 
} 
-1
$('#jGrowl').find('.jGrowl-close').trigger('click'); 
+1

Bitte fügen Sie eine Beschreibung zu Ihrer Antwort – zohar

Verwandte Themen