【问题标题】:continue the .each() loop in jQuery to show more search results继续 jQuery 中的 .each() 循环以显示更多搜索结果
【发布时间】:2015-05-18 16:44:36
【问题描述】:

我想将搜索结果分解为多个块。我在 .each() 循环中显示 10 个结果集,然后在结果计数为 10 时中断循环。如果用户单击某个结果,则应显示更多结果,直到显示 20 个结果,依此类推。按下按钮时,循环正确停止,但不会继续(即显示更多结果)。我哪里做错了?

$("Document").each(function(index) {
  //code to display search result (not included) 
  if ( index % 10 === 0) {
    //stop the loop                             
    return false;          
    $("button#moreResults").click(function(event){
      //continue the loop of the each function
      return;
    });
  }
});//end of each function

【问题讨论】:

    标签: jquery loops search return break


    【解决方案1】:

    您从未添加过处理程序。您的click() 调用在return 之后,因此它永远不会被执行。试试:

    if ( index % 10 === 0) {
      $("button#moreResults").click(function(event){
        //continue the loop of the each function
        return;
      });
    
      //stop the loop                             
      return false;          
    }
    

    【讨论】:

    • 试过了,但是当我点击按钮时,页面刷新并且我没有得到更多结果(循环似乎没有继续)。
    • 您需要return false; 和/或取消处理程序中的事件。我认为这发生在你看不见的“继续循环”代码中。
    • 你的意思是有一个 event.preventDefault();在 click() 处理程序中?我试过了。它仍然不起作用。 return false 似乎覆盖了 click() 处理程序中的 return。我被难住了。
    • return 语句不会相互“覆盖”;第一个在函数内执行只是结束函数。 return false; 应该替换处理程序中的return; 语句,在其中发生任何其他事情之后。
    • 这就是问题所在,不是吗? return false 正在替换 return;完成后。我该如何解决。是不是因为退货;是嵌套的?我仍然无法让它工作。
    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 2017-12-30
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多