一旦上一个事件结束,就将一个接一个的事件提升到jquery

时间:2012-12-26 11:56:36

标签: jquery

  

可能重复:
  How to order events bound with jQuery

我为同一个元素绑定了两个事件。让我们说按钮:

<button>Click</button>

<script>
/*First Event*/
 $('button').click(function(){
   /***Have some piece of code which gets the data that is used for next event***/
 });

/*Second Event*/
 $('button').click(function(){
   /***do some operations with the data that has been fetched from the previous event***/
 });
</script>

现在,只要在按钮上触发点击,就会同时调用两个事件。所以我无法实现我的目标。

我们可以限制事件应该在第一个事件完成其工作时被调用....

注意:以上代码是psuedo代码来解释我的问题..

2 个答案:

答案 0 :(得分:1)

这两个处理程序实际上是按顺序调用的。但是,我们必须假设第一个涉及异步任务(可能是ajax),第二个处理程序需要第一个获取的数据。

秘诀是在一个处理程序中执行这两个任务,如下所示:

$('button').click(function(){
    $.ajax({
        //options
    }).then(function(data) {
        //do some operations with the data that has been fetched
    });
});

答案 1 :(得分:0)

AFAIK你不能定义jQuery事件的顺序,但你可以使用手动调用或回调来实现相同的目标。