在on.change事件后运行一个函数

时间:2015-03-27 19:58:15

标签: javascript jquery eventhandler

我有这样的事情:$('#select1').on('change', function() {})并且它工作正常。但是,我需要在函数完成后运行另一个函数。

我考虑过获取函数内容,并将它放在一个命名函数中,然后执行第二个函数并执行相同操作,并将它们放在匿名函数中:

$('#select1').on('change', function() {
    function1 ();
    function2 ();
});

然而,我希望还有另一种方式。以上似乎与jQuery不一致。

3 个答案:

答案 0 :(得分:1)

试试这个:

$('#select1').on('change', function() {
    function1(someVariable, function() {
      function2(someOtherVariable);
    });
});


function function1(param, callback) {
  //...do stuff
  callback();
} 

这是我发现的地方: Call a function after previous function is complete

答案 1 :(得分:1)

虽然您可以使用回调嵌套函数,但jQuery中的最佳做法通常是使用jQuery.Deferred

var function1 = function() {

    var deferred = $.Deferred();

    //Do your thing. When finished, call deferred.resolve()

    return deferred;
}

var function2 = function() {

   //Function 2 code
}

$('#select1').on('change', function() {

    function1().then(function2);
});

答案 2 :(得分:0)

为什么不尝试jquery更改功能insted javascript bind

$("#select1")。change(function(){

功能1();   函数2()

});