function find(param){
$.each(array,function(i,elem){
if(elem.id==param){
return i;
}
})
return null;
}
//after calling this function i want to perform actions based on result
$(document).on("click","#elem",function(){
//want to make this part synchronous
$.when(i=find(param1)).then(function{
if(i==null)
{//do something
}
else{//do something
}
})
}
我想根据find函数的返回值执行操作。而且只有在find函数结束后才能检查条件。
答案 0 :(得分:1)
您的find函数将始终返回null。
$.each(array,function(i,elem){
if(elem.id==param){
return i; //this is each iteration callback scope not find function scope
}
})
find函数应如下所示:
function find(param){
var matched=null;
$.each(array,function(i,elem){
if(elem.id==param){
matched=i;
}
})
return matched;
}
希望这对你有所帮助。