2015-08-13 87 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本身只是一个信号停止迭代。

相关问题