2015-08-13 60 views
-4

jquery函數返回true和false。我認爲問題可能會從我的每個循環中提升。jquery函數返回true和false時使用每個

function myfunction(param){ 
    $.each(param, function(i, item){ 
     if(condition) return false; 
    }); 
} 

$.when(myfunction(param)).then(function(){ 
    console.log('true'); 
}, function(){ 
    console.log('false'); 
}); 

這然後我的函數返回true和false,所以我不能解決什麼時候。 如何使該功能在條件下返回false。

我的實際代碼

function checkName(nameValue){ 
    var currlist = $(".sortable-fields."+formType).find('li.sortable-field'); 
    var result = true; 
    $.each(currlist, function(i, item){ 
     var elem = $(item); 
     var data = elem.data('fieldData'); 
     if(data['name'] == nameValue) { 
      result = false; 
      return false; 
     } 
    }); 
    return result; 
} 
+0

沒有顯示的代碼表明需要使用'$ .when' – charlietfl

+0

'myfunction(param)'不返回一個'Deffered Object',很明顯'done'(first)函數總是會被調用。 – haim770

+0

我試過$ .Deferred但仍然一樣。 –

回答

2

each回調中返回有着不同的內涵比從函數返回一個結果。使用一個變量後,各回做迭代

function myfunction(param){ 
    var result = true; 
    $.each(param, function(i, item){ 
     if(condition){ 
      result = false; 
      return false; 
     } 
    }); 
    return result; 
} 

返回falseeach本身只是一個信號停止迭代。

相關問題