1

コールバックが実行された後に関数を実行しようとしています。

これが私の例です

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を使用してこれを行う適切な方法は何ですか

4

8 に答える 8

2

匿名関数を使用して、そこに両方の​​コールバックを含めることができます。

$("input[type='text']").change(function(){ 
  callback1();
  callback2();
});
于 2012-10-12T08:36:16.993 に答える
2

以下のようにしてください:

$("input[type='text']").change(function() {
    callback1();
    callback2();
});
于 2012-10-12T08:37:00.677 に答える
2

次のように、複数のコールバックを割り当てることができます。

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

他の回答の書き方には 1 つの違いがあります (つまり、両方のコールバックを繰り返し実行する無名関数を使用します)。次のコードを検討してください。

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、内部からの実行を防ぐことができます(戻ると同じことが達成されると思います)。これは心に留めておくべきことです。callback1evt.stopPropagation()false

于 2012-10-12T08:37:08.193 に答える
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();
});
于 2012-10-12T08:36:17.570 に答える
1

別の無名関数で 2 つのコールバック関数を呼び出します。

$("input[type='text']").change(function() {
    callback1;
    callback2;
});
于 2012-10-12T08:36:35.787 に答える
0
  1. cb1 と cb2 の両方のコードを実行する固有のコールバックを作成します。

  2. cb1 内から cb2 を呼び出します。

于 2012-10-12T08:37:13.900 に答える
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();
});
于 2012-10-12T08:37:41.987 に答える