J'ai le code suivant qui tire des données json d'une page ASP.NET et les affiche comme des notifications. Le code prendra également note de ce qui a été tiré et stocké dans un tableau pour éviter qu'il ne soit affiché à nouveau dans la même session.beforeFermer de ne pas travailler dans jGrowl?
J'essaie maintenant d'implémenter une fonctionnalité de sorte que lorsque l'utilisateur ferme un message, son ID est enregistré dans un cookie pour éviter qu'il ne soit affiché à nouveau. Pour ce faire, j'essaie d'écrire dans le cookie lorsque l'événement beforeClose se déclenche.
Tout le reste fonctionne bien, sauf l'enregistrement dans un cookie. Est-ce qu'il y a quelque chose qui ne va pas avec mon code?
var alreadyGrowled = new Array();
var noteCookie = $.cookie("notificationsViewed");
if (noteCookie != null) { alreadyGrowled = noteCookie.split(","); }
function growlCheckNew() {
$.getJSON('getNotifications.aspx', function(data) {
$(data).each(function(entryIndex, entry) {
var newMessage = true;
$(alreadyGrowled).each(function(index, msg_id) {
if (entry['ID'] == msg_id) {
newMessage = false;
}
});
if (newMessage == true) {
$.jGrowl(entry['Message'], {
sticky: true,
header: entry['Title'],
beforeClose: function(e, m) {
$.cookie("notificationsViewed", entry['ID']);
}
});
}
alreadyGrowled.push(entry['ID']);
});
});
}
Merci pour votre aide, malheureusement, cela ne semble pas avoir fonctionné, car je suis toujours présenté avec les deux mêmes notifications lors de l'actualisation de la page. Le débogage dans FireBug montre que le tableau contient les deux identifiants des notifications mais que la variable noteCookie est null. – sparkymark75
J'ai juste essayé l'exemple 5 sur le site des auteurs (http://stanlemon.net/projects/jgrowl.html) et j'ai remarqué que si vous autorisez la fermeture automatique de la notification, l'événement beforeClose semble se déclencher. Si vous le fermez manuellement via l'option x, l'événement ne se déclenche pas! – sparkymark75