触发后Javascript顺序执行

时间:2015-03-13 16:25:13

标签: javascript jquery

我遇到了javascript执行代码的方式(异步)

我有一小段代码会触发事件并检查'valid'的值。

我的问题是输入if语句时'valid'始终为true,因为事件尚未完成处理:

valid = true;

$(this).find('input').trigger('blur');
//valid will be modified in the triggered events

if(valid){
    //Do something
}

所以我想等到事件结束才能进入语句,但触发器不接受回调

我已经看到一些关于此的问题已经解决,但我不理解它们以及如何实现它们。

我应该用什么来解决这个问题?

3 个答案:

答案 0 :(得分:0)

感谢JamesThorpe,我找到了我想要的答案:

 valid = true;
 $.when($(this).find('input').trigger('blur')).done(function(){
     if(valid){
         //Do something
     }
 });

现在if语句只在​​触发事件后执行

答案 1 :(得分:0)

如果你想让它在模糊时触发,你可以这样做:

$(this).find('input').on('blur', function(){
    if(valid){
        //Do something
    }
});

请注意,该功能将在所有模糊事件中触发。只有一次使用.one()

答案 2 :(得分:0)

我不明白你为什么要使用触发器。我想你可以直接使用blur事件:

$(this).find('input').blur(function(){
    if(valid)
      //do something
});