2012-12-05 80 views
-1

這是我正在使用的腳本。使用jquery 1.8.0返回false不會破壞each()循環

$('.row').each(function(){ 
     $(this).each(function(){ 
      if($(this).find('.name').val()==""){ 

       $(this).find('.name').val(data.name); 
       $(this).find('.autonomy').val(data.autonomy); 
       $(this).find('.purpose').val(data.purpose); 
       $(this).find('.flow').val(data.flow); 
       $(this).find('.relatedness').val(data.relatedness); 
       $(this).find('.challenge').val(data.challenge); 
       $(this).find('.mastery').val(data.mastery); 
       $(this).find('.colour').val(data.colour); 
       done=true; 
      } 
      if(done==true){ 
       alert("here"); 
       return false; 
      } 
     }); 
    }); 

它似乎完全忽略了返回false,我似乎無法解決爲什麼!

+2

爲什麼有兩個'.each()'? – Jack

+0

確實是這個問題!在當天晚些時候完成它:) – daverage

回答

2

無需嵌套each。刪除內部和return false將工作:

$(".row").each(function() { 
    // ... 
    if (done === true) { 
     alert("here"); 
     return false; 
    } 
});​ 
+0

你不知道他的HTML確實不需要每個嵌套。 –

+0

@FábioSilva相信我,沒關係。 – VisioN

+0

但也許他想做一個嵌套循環(每行內的每個元素)。你的解決方案只運行每一行。但我在這種情況下看到你的觀點:第二**這**是第一**這個**,所以他總是訪問*行*元素 –

2

向我們顯示您的DOM首先。

返回,你只停止第二個each()。如果你想停止第一個,你需要以其他方式來完成。

對不起,我不能評論,但我的聲譽不允許。

+1

現在它! :) –