0

抱歉,这可能不是新问题,但我是 JS 新手,我没有得到任何具体的例子。

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 函数结束后才应检查条件。

4

1 回答 1

1

您的 find 函数将始终返回 null。

$.each(array,function(i,elem){              
    if(elem.id==param){
        return i;   //this is each iteration callback scope not find function scope
    }
})

查找函数应如下所示:

function find(param){
    var matched=null;            
    $.each(array,function(i,elem){              
        if(elem.id==param){
            matched=i;
        }
    })
    return matched;
}

希望这对你有帮助。

于 2013-09-30T06:33:41.113 回答