在jQuery中分离AJAX请求和成功回调

时间:2015-08-16 17:04:47

标签: jquery ajax

我已经定义了一个功能,可以捕获带有data-remote标记的链接上的鼠标点击,如下所示。

// Global AJAX request handler
$(document).ready(function() {
    $(document).on('click', 'a[data-remote]', function(event) {
        var target = $(event.target);
        var url = $(this).data('url');
        var method = $(this).data('method');
        $.ajax(url, {type: method, data: $(this).data()})
            .done(function(data){
                target.trigger('complete', data);
            })
            .fail(function(data) {
                target.trigger('failure', data);
            });
    });
});

该函数捕获donefail个事件,然后继续触发最初被点击以启动的元素的新自定义事件(completefailure)整件事。

在其他地方,现在可以做类似的事情......

$('#list').on('complete', 'a[data-remote]', function() {
    $(this).hide();
});

...隐藏被点击的元素,只要AJAX调用成功。

感觉就像捕获一个事件并立即触发一个新事件有点令人费解。 jQuery提供了一种更简单的方法吗?我查看了ajaxSuccess事件...

$('#list').on('ajaxSuccess', 'a[data-remote]', function() {
    $(this).hide();
});

......但它没有触发。有明显的原因吗?

0 个答案:

没有答案