我在另一个函数完成后运行该函数时遇到问题。我尝试像这篇文章中那样回调,但这不起作用 Execute jquery function after another function completes所以也许我做错了什么或者我的情况更复杂。
所以我有在提交表单时运行的函数
$("#search-form").submit(ajaxSubmit(addSearchfuntion)); // addSearchfuntion is callback
function ajaxSubmit(callback) {
var $form = $(this);
var settings = {
data: $(this).serialize(),
url: $(this).attr("action"),
type: $(this).attr("method")
};
$.ajax(settings).done(function(result) {
var $targetElement = $($form.data("ajax-target"));
var $newContent = $(result);
$($targetElement).replaceWith($newContent);
$newContent.effect("slide");
});
callback();
return false;
};
此后,当我在页面上获得新表单时,我想运行另一个函数来处理这个新表单。
function addSearchfuntion(){
$('.Amount').change(updateQuantity);
}
那么如何解决这个问题呢?
最佳答案
您需要使用匿名函数来绑定(bind)submit
事件处理程序。截至目前,您正在执行 ajaxSubmit()
方法并将其返回值(即 false
)绑定(bind)为事件处理程序。
$("#search-form").submit(function(){
ajaxSubmit.bind(this)(addSearchfuntion);
});
并且,调用$.ajax()
的done()
回调方法中的callback
方法
$.ajax(settings).done(function(result) {
// Your existing code
....
....
// call the callback
callback();
});
关于javascript - 如何在另一个函数完成后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36988181/