javascript - 如何在另一个函数完成后运行函数

标签 javascript jquery

我在另一个函数完成后运行该函数时遇到问题。我尝试像这篇文章中那样回调,但这不起作用 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/

相关文章:

javascript - 内联 Javascript 会减少延迟的可能性吗?

jquery - 没有结果的 rails 4 jquery 自动完成文本

javascript - laravel 5中使用ajax插入数据时页面刷新且数据不会添加

javascript - 颜色为具有相同颜色的相同 ID 的线条

javascript - jquery.delegate 什么时候调用事件处理器?

javascript - 在 React 中处理受控的表单组件更改

javascript - 为每个 H3 Span 元素随机旋转字符

javascript - 使用 Bootstrap 在 Javascript 中强制页面缩放至 135%

jquery - 我们如何使用jquery获取带有Id的字段值

javascript - jquery : Globalize. js