我正在尝试在执行回调后执行一个函数。
这是我的例子
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
执行此操作的正确方法是什么答案 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)
创建执行cb1和cb2代码的唯一回调。
从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));