如何动态退出 jQuery 的 $.each() 循环?

27

我有一个图像列表,通过Ajax获取,然后使用jQuery的$.each()循环浏览图像,并在一秒钟的间隔后依次显示图像。 我希望用户能够单击停止按钮,以便用户可以在特定图像处停止。因此,当用户单击停止按钮时,需要动态退出$.each()。是否可能做到这一点?


你需要一个代码示例吗? - Jeriko
5个回答

59

你可以使用return false来提前退出each()循环。

例子:

<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>

来源: http://api.jquery.com/each/


一旦通过 AJAX 调用获取数据后,我将把数据传递给一个名为 show_images(data) 的函数,然后执行以下操作:if ($('#stop').is(':visible')) { return false; } else { //显示下一张图片 }此外,这段代码也包括以下内容:$(".stop").click(function(){ $("#stop").hide();
});但该代码似乎没有生效。
- peter
2
但你必须返回 false。你不能提前使用 true 返回。 - Jess

13

要退出一个 each() 循环,你可以执行以下操作:

return false;

因此,当单击按钮时,您的按钮可以设置一个变量,每次循环都会检查该变量,然后在变量被设置时返回false。

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


4

3
return(false);

应该这样做。


-1
在每个循环之间使用return false;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接