ajaxComplete()是否适用于trigger()?

时间:2018-12-21 09:20:01

标签: javascript jquery ajax

我得到了x个选择和输入,每个选择和输入都使用Ajax更改下一个选择和输入的值(例如研究工具)。选择次数可以根据不同的参数进行更改。

我编写的这段代码似乎无效:

$('body').find('select, input').each(function(i, e) { 
    $(e).trigger('change').ajaxComplete(function () { continue; } );
});

在继续下一个元素之前,有什么方法可以等待每个ajax调用的结束吗? setTimeout()并不是一个很好的解决方案,因为某些AJAX需要花费很多时间来生成(影响具有400万行的数据库)。

以下是我用于一次选择的Ajax调用的示例-请注意,在我的情况下,每个ajax调用都是不同的(页面,参数,成功操作),但是每个ajax调用都返回JSON:

$.ajax({
    url:'load_product.php',
    method:'POST',
    cache:false,
    dataType:'json',
    data:{s:$(this).val()},
    success:function(a, b, c) {
        if(typeof a.error == "string") {
            showError(a.typeError, a.error);
        }

        if(typeof a.product_ean == "string") {
            $('input#product').val(a.product);
            $('input#product').trigger('change');
        }
    },
    error:function(a, b, c) {
        showError('danger', b);
    }
});

0 个答案:

没有答案