我有以下代码:
  function submitHandler($link, $modal, close) {
    var $form = $modal.find('#main-form');
    var $submitBt = $modal.find('.block-footer button:contains("Submit")');
    var oSubmit = {
        $form: $form,
        $modal: $modal,
        action: $form.attr('data-action'),
        entity: $form.attr('data-entity'),
        href:   $form.attr('data-href'),
        row: $link.attr('data-row'),
        $row: $('#row_' + $link.attr('data-row')),
        $submitBt: $submitBt
    };
    if (!$form.valid || $form.valid()) {
        $submitBt.disableBt();
        $modal.removeBlockMessages()
            .blockMessage('Contacting Server, please wait ... ', { type: 'loading' });
        $.ajax({
            url: oSubmit.href,
            dataType: 'json',
            type: 'POST',
            data: $form.serializeArray()
        })
        .done(function (json, textStatus, XMLHttpRequest) {
            json = json || {};
            if (json.success) {
                submitSuccessModal(oSubmit, json);
                if (close == true) {
                    $modal.closeModal();
                    if (oSubmit.action == "Create") {
                        $('#createLink').prop('disabled', false);
                    }
                }
            } else {
                submitFailModal(oSubmit, json);
            }
        })
        .fail(function (XMLHttpRequest, textStatus, errorThrown) {
            setTimeout(function () {
                $modal
                    .removeBlockMessages()
                    .blockMessage('Could not contact server, please try again', { type: 'error' });
                $submitBt.enableBt();
            }, 1000);
            return false;
        });
    };
};
将功能从我的 $.ajax 中移出并移出“完成”的函数和“失败”的另一个函数的最佳方法是什么。另外,我应该将哪些参数传递给这些函数?我想我最困惑的是我应该如何处理我在代码顶部声明的变量。我是否也应该将这些也传递给 .done 中的外部函数,我确实引用了其中的一些。