未分类

jquery ajax success 后使用 外部变量

jquery ajax 使用 context 这个参数

这个对象用于设置 Ajax 相关回调函数的上下文。也就是说,让回调函数内 this 指向这个对象(如果不设定这个参数,那么 this 就指向调用本次 AJAX 请求时传递的 options 参数)。比如指定一个 DOM 元素作为 context 参数,这样就设置了 success 回调函数的上下文为这个 DOM 元素。

$('.each_button').click(function(){

    $.ajax({
        context: this, // <-- 加上这一行
        type: 'POST', 
        url: process.php, 
        data: data, 
        success: function(data) {
               // ... 现在 this 就是 外部的this对象
            alert(this.className);
        }
    });

});

success 使用 $.proxy

$('.each_button').click(function(){

    $.ajax({
        type: 'POST', 
        url: process.php, 
        data: data, 
        success: $.proxy(function(data) {
               // ...now 'this' is the element you want
            alert(this.className);
        }, this) // <-- bind the context
    });

});

参考

https://stackoverflow.com/questions/11892902/in-jquery-how-can-i-access-this-from-an-ajax-callback-function?noredirect=1&lq=1