yes javascript jquery jquery-plugins notifications noty

javascript - yes - noty el tiempo de espera del plugin Jquery no sucede



javascript confirm submit (7)

Para que funcione, cambié lo siguiente en jquery.noty.js ...

self.$bar.delay(self.options.timeout).promise().done(function () { self.close(); });

a esto ...

setTimeout(function () { self.close(); }, self.options.timeout);

El tiempo de espera del plugin de Jquery noty no funciona cuando se alimenta con una lista de mensajes. Obtengo la lista de mensajes de servlet y call noty como este.

<script> function callNotification() { <c:foreach var = "message" items = "${sessionScope.notification}"> notify(''${message}''); </c:foreach> } function notify(message) { noty({ "text": message, "theme": noty_theme_facebook", "layout": topRight, "information","animateOpen":{"height":"toggle"}, "information","animateOpen":{"height":"toggle"}, "speed":500, "timeout":5000, "closeButton":true, "closeOnSelfClick":true, "closeOnSelfOver":false, "modal":false }) </script>

Idealmente, esto debería recorrer los mensajes e imprimirlos con un tiempo de espera de 5000 ms. Pero esto imprime todos los mensajes a la vez. Además, traté de usar la función setTimeout nativa de javascript y reemplacé mi callNotification con esto.

function callNotification() { <c:foreach var = "message" items = "${sessionScope.notification}"> (function(message){ setTimeout(function(){notify(''${message}'');},5000) }(''${message}'') }} </c:foreach> }

Pero esto también resultó ineficaz. Curiosamente, el tiempo de espera parece funcionar bien cuando reemplazo el "layout":center en el método de notificación. ¿Dónde estoy equivocado? Quiero que los mensajes se muestren con el tiempo de 5 segundos después del cual el primer mensaje se borra automáticamente y aparece el siguiente.


Noty está codificado de modo que si tiene botones en su Noty, deshabilita el tiempo de espera. Eso no tiene sentido para mí, pero así es como es.

Este es el culpable (línea 62):

60: // If we have button disable closeWith & timeout options 61: this.options.closeWith = []; 62: this.options.timeout = false;

Simplemente elimina this.options.timeout = false; y eso mantendrá el tiempo de espera funcionando si tiene un botón con botones.


Debe proporcionar esta opción como parámetro: "botones: falso"


En su jquery.noty.packaged.js, cree una variable global denominada archivo "master_self". Ahora, en la línea 103 o 104, debe haber una línea var self = this; justo debajo de esa línea, asigne master_self como self master_self = self;

Ahora crea una función en el mismo archivo:

function autoTimeout(timeoutVal){ setTimeout(function(){ var self = master_self; if (typeof self.options.animation.close == ''string'') { self.$bar.addClass(self.options.animation.close).one(''webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'', function() { if(self.options.callback.afterClose) self.options.callback.afterClose.apply(self); console.log(self); self.closeCleanUp(); }); } else { self.$bar.clearQueue().stop().animate( self.options.animation.close, self.options.animation.speed, self.options.animation.easing, function() { if(self.options.callback.afterClose) self.options.callback.afterClose.apply(self); }) .promise().done(function() { self.closeCleanUp(); }); } },timeoutVal); }

Ahora llame a esta función explícitamente en la notificación que desea agotar de esta manera justo después de llamar al objeto noty para crear una notificación:

autoTimeout(1000);


Mi respuesta es para v2.3.7.

Noty devuelve un objeto javascript, por lo tanto, si lo comprueba en firebug haciendo console.dir (n), encontrará todos los métodos y propiedades del objeto devuelto.

A continuación, establecerá un tiempo de espera de 3 segundos:

var n = noty({text: ''noty - a jquery notification library!''}); n.setTimeout(3000);


También puede lograr esto especificando esta opción durante la inicialización

buttons: false

Más aquí http://ned.im/noty/#/about


Pruebe closeWith Con la opción de tiempo de espera, espero que funcione bien

function generate(type, text) { var n = noty({ text : text, type : type, dismissQueue: true, layout : ''topRight'', closeWith : [''click'',''timeout''], theme : ''relax'', maxVisible : 10, timeout :7000, animation : { open : ''animated bounceInRight'', close : ''animated bounceOutRight'', easing: ''swing'', speed : 500 } });