执行回调后执行某些操作

时间:2012-10-12 08:34:48

标签: javascript jquery

我正在尝试在执行回调后执行一个函数。

这是我的例子

var callback1 = function () {
  // check input ($(this).val()) for validity here
};
var callback2 = function () {
 // make other things after callback1 has finished
};

$("input[type='text']").change(callback1);

然后当callback1被执行时,我想执行callback2 使用jquery / javascript

执行此操作的正确方法是什么

8 个答案:

答案 0 :(得分:2)

您可以使用匿名函数并在其中包含两个回调。

$("input[type='text']").change(function(){ 
  callback1();
  callback2();
});

答案 1 :(得分:2)

如下所示:

$("input[type='text']").change(function() {
    callback1();
    callback2();
});

答案 2 :(得分:2)

您可以分配多个回调:

$('input ...')
    .on('change', callback1)
    .on('change', callback2)

其他答案的编写方式有一个区别(即使用迭代运行两个回调的匿名函数)。请考虑以下代码:

function callback1(evt) {
    // check input ($(this).val()) for validity here

    // stop any other handlers from running
    evt.stopPropagation();
}

function callback2() {
    // make other things after callback1 has finished
}

您可以通过调用callback2阻止callback1内部evt.stopPropagation()的执行(我认为返回false会完成同样的事情)。这是值得记住的。

答案 3 :(得分:1)

callback2

结尾处执行callback1
var callback1 = function () {
    // check input ($(this).val()) for validity here
    callback2();
};
var callback2 = function () {
    // make other things after callback1 has finished
};

$("input[type='text']").change(callback1);

或者,如果您想让它们完全独立,您可以将函数传递给单独调用回调的change()事件:

var callback1 = function () { /* code */ };
var callback2 = function () { /* code */ };
$("input[type='text']").change(function() {
    callback1();
    callback2();
});

答案 4 :(得分:1)

在另一个匿名函数中调用两个回调函数:

$("input[type='text']").change(function() {
    callback1;
    callback2;
});

答案 5 :(得分:0)

  1. 创建执行cb1和cb2代码的唯一回调。

  2. 从cb1内部调用cb2。

答案 6 :(得分:0)

使用此:

var callback1 = function () {
  // check input ($(this).val()) for validity here
};
var callback2 = function () {
 // make other things after callback1 has finished
};
$('input[type="text"]').change(function() {
    callback1();
    callback2();
});

答案 7 :(得分:0)

使用返回要执行的功能的函数。

var callback1 = function (my_callback) {
  return function(){
    // check input ($(this).val()) for validity here
    //   ...
    my_callback();
  }
};
var callback2 = function () {
 // make other things after callback1 has finished
};

$("input[type='text']").change(callback1(callback2));