后来成功进入了ajax

时间:2016-07-19 08:19:10

标签: javascript jquery ajax

我正在编写一个插件,有一个ajax调用向用户显示数据。
如果用户想在ajax上成功添加一些js?他可以从他的js脚本中做到这一点,就像瞄准这个ajax成功事件一样。
例如:

 $(document).on('click','button',function(){
    $.ajax({
        url: 'url.php',
        success: function(response){
            /** HOOK HERE **/
            $('.display').html(response);
        }
    })
})

现在,用户希望将此alert('User data');添加到a​​jax成功通话

1 个答案:

答案 0 :(得分:1)

你只需要记住函数就像数字,字符串等对象。所以你可以为他提供一个变量来附加函数并调用它(如果有的话):

MyPlugin = {
    onAjaxSuccess: null
};

$(document).on('click','button',function(){
    $.ajax({
        url: 'url.php',
        success: function(response){
            /** HOOK HERE **/
            if (typeof MyPlugin.onAjaxSuccess == 'function') {
                MyPlugin.onAjaxSuccess(response);
            }
            $('.display').html(response);
        }
    })
})

现在您的用户可以这样做:

MyPlugin.onAjaxSuccess = function (response) {
    console.log(response)
};

等等,我以前在哪里见过这个?

这是与旧式DOM .onXXX回调类似的API。就像

document.getElementById('myButton').onclick = function () {
    alert('HA');
};

看起来太老了。

如果您希望您的API看起来更现代,并且所有想象都可以模仿jQuery的风格:

MyPlugin = {
    onAjaxSuccess: null,
    on: function (e_type,callback) {
        if (e_type == 'ajaxSuccess') {
            this.onAjaxSuccess = callback;
        }
    }
};

现在您的用户可以执行此操作:

MyPlugin.on('ajaxSuccess',function(result){
    console.log(result);
});