Foros del Web » Programando para Internet » Jquery »

delay no funciona

Estas en el tema de delay no funciona en el foro de Jquery en Foros del Web. Hola, Estoy intentando agregarle una clase a todos los divs que tengan la clase .conocimiento pero quiero que se agreguen una por una pero se ...
  #1 (permalink)  
Antiguo 02/11/2015, 07:30
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
delay no funciona

Hola,

Estoy intentando agregarle una clase a todos los divs que tengan la clase .conocimiento pero quiero que se agreguen una por una pero se agregan todas al mismo tiempo, mi código es el siguiente:

Código HTML:
Ver original
  1. <div class="html-5 conocimiento">
  2.     <div class="conoc-cont">
  3.       //
  4.   </div>
  5.   <div class="css-3 conocimiento">
  6.     //
  7.   </div>
  8.   <div class="ps conocimiento">
  9.     //
  10.   </div>
  11.   <div class="js conocimiento">
  12.    //
  13.   </div>
  14.   <div class="php conocimiento">
  15.     //
  16.   </div>

Código Javascript:
Ver original
  1. $('.conocimiento').each(function(index) {
  2.  $(this).delay(500*index).addClass('animated shake');
  3. });

Alguna idea de por qué no funciona?
  #2 (permalink)  
Antiguo 02/11/2015, 07:32
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 9 meses
Puntos: 3
Respuesta: delay no funciona

Mira que index esté dando un numero que sea mayor que 0 y mira a través de la herramienta de desarrollo del explorador si realmente sale algún error o no (F12).
  #3 (permalink)  
Antiguo 02/11/2015, 07:45
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: delay no funciona

Muchas gracias por tu respuesta, estos son los valores que obtengo:

functions.js:86 0
functions.js:86 500
functions.js:86 1000
functions.js:86 1500
functions.js:86 2000


y no me da ningún error, sin embargo todos aparecen al mismo tiempo :(
  #4 (permalink)  
Antiguo 02/11/2015, 08:01
 
Fecha de Ingreso: julio-2015
Ubicación: Barcelona
Mensajes: 93
Antigüedad: 8 años, 9 meses
Puntos: 3
Respuesta: delay no funciona

Prueba con:

Código Javascript:
Ver original
  1. setTimeout(
  2.   function()
  3.   {
  4.    $(this).addClass('animated shake');
  5.   }, 500*index);
  #5 (permalink)  
Antiguo 02/11/2015, 08:08
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: delay no funciona

A pesar de que lo modifiqué de la siguiente manera me dice que indexno esta definido:

Código Javascript:
Ver original
  1. setTimeout(
  2.   function(index)
  3.   {
  4.    $('.conocimiento').addClass('animated shake');
  5.   }, 500*index);

había intentado de una manera similar que sí agrega el estilo pero de igual manera los pone todos al mismo tiempo:

Código Java:
Ver original
  1. var tiempo = 0;
  2.         $('.conocimiento').each(function(){
  3.             setTimeout(function() {$('.conocimiento').addClass('animated shake');} , tiempo)
  4.             tiempo += 500;
  5.             console.log(tiempo);
  6.         });

Imprime los siguientes valores:

500
functions.js:83 1000
functions.js:83 1500
functions.js:83 2000
functions.js:83 2500
  #6 (permalink)  
Antiguo 03/11/2015, 14:09
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 10 años, 7 meses
Puntos: 39
Respuesta: delay no funciona

Tienes que usar la función setInterval()
__________________
velarde23.com - Soluciones Web
  #7 (permalink)  
Antiguo 04/11/2015, 05:40
 
Fecha de Ingreso: enero-2014
Ubicación: Navarra
Mensajes: 94
Antigüedad: 10 años, 3 meses
Puntos: 18
Respuesta: delay no funciona

Hola.

En principio tienes un error en el dom, has metido un div
<div class="conoc-cont"> sin cierre, ahi js se hace un lio.

prueba a corregir eso y pones la funcion jquery asi:

$('.conocimiento').each(function(i){
var capas = $(this);
setTimeout(function() { capas.addClass('animated shake'); }, 500*i);
});

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:29.