Foros del Web » Programando para Internet » Jquery »

Detener y continuar each

Estas en el tema de Detener y continuar each en el foro de Jquery en Foros del Web. Wenas,,, Hay alguna forma de detener un each y luego continuarlo desde el ultimo indice que recorrio? Por ejemplo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original ...
  #1 (permalink)  
Antiguo 13/02/2014, 11:12
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Detener y continuar each

Wenas,,,

Hay alguna forma de detener un each y luego continuarlo desde el ultimo indice que recorrio?

Por ejemplo

Código HTML:
Ver original
  1. i = 0
  2.  
  3. $().each if(i==1)* (function(index){
  4.      
  5. })

* Si ' i ' es igual a 1 que siga recorriendo sino que compruebe la variable hasta que alla cambiado a 1 para seguir recorriendo el each.

No se si me explique muy bien, espero se entienda.
  #2 (permalink)  
Antiguo 13/02/2014, 11:16
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Detener y continuar each

Si estuvieras realizando una iteración normal de JavaScript podrías utilizar break y continue.
  #3 (permalink)  
Antiguo 13/02/2014, 11:21
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Detener y continuar each

Cita:
Iniciado por PHPeros Ver Mensaje
Si estuvieras realizando una iteración normal de JavaScript podrías utilizar break y continue.
No es necesario ya que también puedes dentro del each colocar lo siguiente:

Código Javascript:
Ver original
  1. $("selector").each(function(){
  2.     if(i==1){
  3.         return;
  4.     }
  5. });

Si usas solo return; es como si se hiciese un continue;, pero si se usa return false; es como si se hiciese un break;

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #4 (permalink)  
Antiguo 13/02/2014, 11:28
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Detener y continuar each

Gracias por responder

Con la comprobación que hace jonni09lo lo que estaria haciendo es comprobar si i es igual a 1 pero en el caso que no llegara a ser 1 detiene el each y vuelve a comprobar o sigue con el siguiente elemento?

necesito que no siga al siguiente elemento sino que se quede en el elemento que esta hasta que la variable i sea igual a 1 y así poder continuar el each.

puedo usar each o cualquier otra funcion para lograrlo.
  #5 (permalink)  
Antiguo 13/02/2014, 11:30
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Detener y continuar each

Cita:
Iniciado por Maganius Ver Mensaje
Gracias por responder

Con la comprobación que hace jonni09lo lo que estaria haciendo es comprobar si i es igual a 1 pero en el caso que no llegara a ser 1 detiene el each y vuelve a comprobar o sigue con el siguiente elemento?

necesito que no siga al siguiente elemento sino que se quede en el elemento que esta hasta que la variable i sea igual a 1 y así poder continuar el each.

puedo usar each o cualquier otra funcion para lograrlo.
Hiciste la prueba? el código no muerde

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #6 (permalink)  
Antiguo 13/02/2014, 11:59
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Detener y continuar each

Probe de esta forma:

Código Javascript:
Ver original
  1. if($("#fin").val()==1){
  2.     $(this).attr("checked",false);
  3.     $("#fin").val("0");
  4. }else{
  5.     return;
  6. }

Pero igual continua el each hacia el siguiente elemento, yo necesito que el each mantenga la posicion actual hasta que en el campo fin contenga 1
  #7 (permalink)  
Antiguo 13/02/2014, 12:05
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Detener y continuar each

Pues pon el código completo de javascript y html para dar una idea general, ya que sí funciona lo que te digo.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #8 (permalink)  
Antiguo 13/02/2014, 12:20
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Detener y continuar each

En tu ejemplo hicistes un IF si es igual a 2 detiene el each haciendo que no se pinte de rojo pero luego sigue con el elemento siguiente tal vez yo me exprese mal.

En el ejemplo tu utilizastes un autoincremento de i pero yo utilizo un campo de texto que lo cambio a 1 cuando finaliza otra acción, hasta que la otra funcion no cambie a 1 el campo de texto el each tiene que estar en standby hasta que el campo tenga el numero 1 no se si me explico bien aca pongo un ejemplo.

Código Javascript:
Ver original
  1. function box(nombre,estado){
  2.     if(estado==1){
  3.         $("#estados").append('<div class="estado_ok">'+nombre+'</div>').hide().fadeIn("slow");
  4.     }else{
  5.         $("#estados").fadeIn("slow").append('<div class="estado_error">'+nombre+'</div>').hide().fadeIn("slow");
  6.     }
  7.     $("#fin").val("1");
  8. }
  9.  
  10. function limpiar(){
  11.     $("#estados").html("");
  12.    
  13.     $(".personas:checked").each($).wait(3000, function(index){
  14.             if($("#fin").val()==1){
  15.                 $(this).attr("checked",false);
  16.                 $("#fin").val("0");
  17.             }else{
  18.                 return;
  19.             }
  20.             box("yo",1);
  21.     })
  22. }

tal vez lo que yo quiero hacer no se pueda y tenga que buscar de otra forma.

Etiquetas: continuar, detener
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 20:43.