2010-02-19 5 views

Répondre

1

L'espace de noms vient après l'événement ..

il devrait donc être

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

mise à jour après commentaire
La syntaxe mentionnée dans leur blog pourrait être une faute de frappe .. (l'avez-vous essayé pour voir si cela fonctionne?)

Autre t han qui, une demande d'assistance aux plugins jquery la page du février 2009 peut contenir encore quelques informations .. un coup d'oeil ..

+0

@Gaby: > [Selon] (http: //www.stanlemon .netindex.jgrowl.html) à ce qu'il est comme je l'ai dit – Hulk

+0

bizarre .. peut-être c'est une faute de frappe ... l'avez-vous essayé? –

+0

oui cela ne fonctionne pas .. – Hulk

2

Trois options:

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

Tout les fermer toutes les notifications. Cependant, je ne suis pas sûr de savoir comment fermer une notification individuelle.

9

Cela a fonctionné pour moi

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

Cette syntaxe ne semble pas fonctionner plus. Tout ce qu'il a fait pour moi était pop un autre jGrowl avec un message de "fermer" – Kristopher

+0

Cela fonctionne toujours pour moi pour la dernière version – Arda

0

Voici une solution pour fermer les notifications individuelles:

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

Voici une autre solution pour ouvrir et fermer des messages individuels qui utilise la fonction de regroupement de 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); 
1

La meilleure méthode est

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

Lorsque jGrowl créer une notification de l'utiliser pour créer deux jGrowl notification DIVs où l'un est vide. Ainsi, lorsque vous créez une notification, la dernière est la dernière notification. Vous devez donc fermer la dernière DIV avec la classe de notification jGrowl.

Chaque fois que vous vouliez ouvrir seule note à usage unique du code ci-dessous, qui supprimera la note précédente et créer un nouveau

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

$.jGrowl("Hello World"); 
1

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

ou

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

Sont les meilleurs moyens de fermer une notification car tous les rappels seront déclenchés en conséquence.

La suppression du mode contourne les rappels, ce qui est moins qu'idéal.Notez également que pour fermer une notification spécifique, vous devez utiliser le sélecteur indiqué ci-dessus.

L'appel de méthode $.fn.jGrowl() est conçu pour mettre en parallèle l'approche de widget de jQuery.UI et est devenu assez courant et je maintiendrai probablement cela dans les prochaines versions.

2

Celui-ci a fonctionné pour moi, la fermeture de la dernière notification:

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

Edit: Amélioration de l'efficacité en remplaçant avec déclencheur triggerHandler. Voir http://api.jquery.com/triggerHandler/

2

J'ai eu le même problème parce que j'ajoutais un ensemble de boutons dans la notification de growl. L'un était utilisé pour accepter la notification et l'autre était utilisé pour ignorer la notification. L'approche que je pris était d'ajouter un rappel afterOpen puis ajouter un gestionnaire click avec la référence à l'élément d'origine à proximité:

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

S'il vous plaît ajouter une description à votre réponse – zohar