我有这样的事情:$('#select1').on('change', function() {})
并且它工作正常。但是,我需要在函数完成后运行另一个函数。
我考虑过获取函数内容,并将它放在一个命名函数中,然后执行第二个函数并执行相同操作,并将它们放在匿名函数中:
$('#select1').on('change', function() {
function1 ();
function2 ();
});
然而,我希望还有另一种方式。以上似乎与jQuery不一致。
答案 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()
});