cómo salir dinámicamente de un jquery $.cada()?


Tengo una lista de imágenes que estoy obteniendo a través de ajax y luego usando jquery $.cada () loop a través de las imágenes y mostrar una imagen después de la otra después de un intervalo de un segundo. Quiero que el usuario pueda hacer clic en un botón de parada y para que el usuario pueda detenerse en una imagen en particular si lo desea. Así que necesito salir dinámicamente $cada () cuando el usuario hace clic en el botón detener. ¿Es posible hacerlo?

Author: peter, 2010-06-04

5 answers

Puedes usar return false para romper los bucles each() antes.

Ejemplo:

<script>
    $("button").click(function () {
      $("div").each(function (index, domEle) {
        // domEle == this
        $(domEle).css("backgroundColor", "yellow"); 
        if ($(this).is("#stop")) {
          $("span").text("Stopped at div index #" + index);
          return false;
        }
      });
    });

</script>

Fuente: http://api.jquery.com/each/

 52
Author: Adeel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-24 06:11:39

Para salir de un bucle each() usted:

return false;

Por lo que su botón podría establecer una variable cuando se hace clic que el bucle cada comprueba cada paso, luego devuelve false cuando se establece la variable.

Http://api.jquery.com/each/

 13
Author: user113716,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-04 10:46:02

Http://api.jquery.com/each/

Podemos detener el bucle desde dentro de la función callback devolviendo false.

 4
Author: Anpher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-04 10:45:26
return(false);

Debería hacerlo.

 3
Author: jAndy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-04 10:44:56

Use return false; entre cada bucle.

 -1
Author: Rifky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-10 18:52:53