Javascript 在on.change事件后运行函数
我有这样的东西:Javascript 在on.change事件后运行函数,javascript,jquery,eventhandler,Javascript,Jquery,Eventhandler,我有这样的东西:$('#select1')。在('change',function(){})上,它工作得很好。但是,我需要在函数完成后运行另一个函数 我考虑将函数内容放入一个命名函数中,然后使用第二个函数并执行相同的操作,然后将它们放入匿名函数中: $('#select1').on('change', function() { function1 (); function2 (); }); 然而,我希望有另一种方法。上述内容似乎与jQuery不一致。为什么不尝试使用jQuery
$('#select1')。在('change',function(){})
上,它工作得很好。但是,我需要在函数完成后运行另一个函数
我考虑将函数内容放入一个命名函数中,然后使用第二个函数并执行相同的操作,然后将它们放入匿名函数中:
$('#select1').on('change', function() {
function1 ();
function2 ();
});
然而,我希望有另一种方法。上述内容似乎与jQuery不一致。为什么不尝试使用jQuery更改函数代替javascript绑定 $(“#选择1”).change(函数(){ 功能1(); 职能2() })) 试试这个:
$('#select1').on('change', function() {
function1(someVariable, function() {
function2(someOtherVariable);
});
});
function function1(param, callback) {
//...do stuff
callback();
}
我在这里发现:
尽管可以使用回调嵌套函数,但jQuery中的最佳实践通常是使用
更多信息可能会在这里有所帮助。如果
function1
是一个状态更改,并且function2
更新了演示文稿,您可以考虑使用发布/订阅或观察者模式。我希望我不会将它们分开。也许只是链接函数?尽管这是可行的,但jQuery延迟对象通常是链接函数的推荐方式。
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);
});