복붙노트

[JQUERY] 아약스 성공 콜백 함수 내부의 $ (이)에 액세스하는 방법

JQUERY

아약스 성공 콜백 함수 내부의 $ (이)에 액세스하는 방법

해결법


  1. 1.무엇을 $해야합니다 (이) 수? 당신이 그 기능을 외부에 대한 참조가있는 경우, 당신은 단지 변수에 저장할 수 있습니다.

    무엇을 $해야합니다 (이) 수? 당신이 그 기능을 외부에 대한 참조가있는 경우, 당신은 단지 변수에 저장할 수 있습니다.

    $('#someLink').click(function() {
        var $t = $(this);
        $.ajax( ... , function() {
            $t.parent().remove();
        });
    }
    

  2. 2.상황에 맞는 옵션을 체크 아웃 - 나를 위해 완벽하게 작동합니다 :

    상황에 맞는 옵션을 체크 아웃 - 나를 위해 완벽하게 작동합니다 :

    $.ajax({
        context: this,
        type: 'post',
        url: '<?php echo site_url('user/accept_deny_friendship_request')?>',
        data: 'action='+$action+'&user_id='+$user_id,
        success: function(response){
           //can access this now!
        }
    });
    

  3. 3.당신이 당신의 아약스 호출의 맥락에서이 싶은 경우에, 당신은 또한 다음과 같은 () .bind 사용할 수 있습니다 :

    당신이 당신의 아약스 호출의 맥락에서이 싶은 경우에, 당신은 또한 다음과 같은 () .bind 사용할 수 있습니다 :

    $.ajax({
      url: 'some_url'
      success: function(data) {
        // do something 'this'
      }.bind(this)
    })
    

    그것은이 외부로 성공 콜백 내부에서는이 값을 결합한다.


  4. 4.함수 내에서이 범위를 변경 $ .proxy를 호출하십시오 :

    함수 내에서이 범위를 변경 $ .proxy를 호출하십시오 :

    $.ajax({
        success: $.proxy(function(response) { $(this).parent().bla(); }, $(this));
    });
    

  5. 5.나는 $를 볼 수 없습니다 (이) 아무것도하지만 더 쉬운 방법을 참조하는 요소를 클래스 또는 ID와 참조를 제공하는 것 그 JQuery와에서 :

    나는 $를 볼 수 없습니다 (이) 아무것도하지만 더 쉬운 방법을 참조하는 요소를 클래스 또는 ID와 참조를 제공하는 것 그 JQuery와에서 :

    대신에:

    $(this).parent().remove();
    

    당신은 할 수 있습니다 :

    $('#element_id').parent().remove();
    

    참고 : 여기 당신이 하나의 요소 / 반복 처리한다고 가정합니다.

  6. from https://stackoverflow.com/questions/2643798/how-to-access-the-this-inside-ajax-success-callback-function by cc-by-sa and MIT license