Javascript 在执行回调后执行某些操作
我试图在执行回调后执行一个函数 这是我的例子Javascript 在执行回调后执行某些操作,javascript,jquery,Javascript,Jquery,我试图在执行回调后执行一个函数 这是我的例子 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); 然后,在执行回调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);
然后,在执行回调1后,我希望执行回调2。使用jquery/javascript的正确方法是什么?您可以使用匿名函数并在其中包含两个回调
$("input[type='text']").change(function(){
callback1();
callback2();
});
您可以使用匿名函数并在其中包含两个回调
$("input[type='text']").change(function(){
callback1();
callback2();
});
在
callback1
末尾执行callback2
:
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();
});
在
callback1
末尾执行callback2
:
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();
});
在另一个匿名函数中调用两个回调函数:
$("input[type='text']").change(function() {
callback1;
callback2;
});
在另一个匿名函数中调用两个回调函数:
$("input[type='text']").change(function() {
callback1;
callback2;
});
只需像下面这样做:
$("input[type='text']").change(function() {
callback1();
callback2();
});
只需像下面这样做:
$("input[type='text']").change(function() {
callback1();
callback2();
});
您可以分配多个回调,如下所示:
$('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
}
您可以通过调用
evt.stopPropagation()
(我认为返回false
)从callback1
内部阻止执行callback2
)。这是需要记住的。您可以像这样分配多个回调:
$('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
}
您可以通过调用evt.stopPropagation()
(我认为返回false
)从callback1
内部阻止执行callback2
)。这是需要记住的
使用返回要执行的函数的函数
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));
使用返回要执行的函数的函数
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));