$(this)对象在AJAX回调中不可用

Jer*_*nes 1 ajax jquery closures jquery-callback

可能重复:
$(this)AJAX内部成功无法正常工作

我正在使用一键按钮,其中有一个ajax回调.如果它返回成功,我想在我的按钮中添加一个类,$(this).addClass('abc');但没有用. $(this)不适用于AJAX.执行此操作的替代方法是什么,因为有几个相同的块.

Jan*_*čič 7

一旦你进入AJAX回调,this就不再指向你的按钮了(google"JavaScript closures and this"for more).

您需要将对当前的引用保存this到变量中,然后使用它来添加类.像这样的东西:

$( '#button' ).click ( function () {
  var $this = $( this );
  $.get (
    'url',
    function ( data ) {
      $this.addClass ( 'abc' );
    }
  );
} );
Run Code Online (Sandbox Code Playgroud)