복붙노트

[JQUERY] 작동하지 않는 AJAX 성공의 $ (이) 내부

JQUERY

작동하지 않는 AJAX 성공의 $ (이) 내부

해결법


  1. 1.콜백 내에서 this는 Ajax 호출이 아닌 이벤트 핸들러가 결합 된 요소의 jqXHR 객체를 참조. 더이 자바 스크립트에서 어떻게 작동하는지에 대해 알아보세요.

    콜백 내에서 this는 Ajax 호출이 아닌 이벤트 핸들러가 결합 된 요소의 jqXHR 객체를 참조. 더이 자바 스크립트에서 어떻게 작동하는지에 대해 알아보세요.

    ES2015 +가 사용 가능한 경우, 화살표 기능을 사용하는 것이 아마도 가장 간단한 옵션이 될 것입니다 :

    $.ajax({
        //...
        success: (json) => {
             // `this` refers to whatever `this` refers to outside the function
        }
    });
    

    당신은 상황에 맞는 옵션을 설정할 수 있습니다 :

    $.ajax({
        //...
        context: this,
        success: function(json) {
             // `this` refers to the value of `context`
        }
    });
    

    또는 $ .proxy을 사용합니다 :

    $.ajax({
        //...
        success: $.proxy(function(json) {
             // `this` refers to the second argument of `$.proxy`
        }, this)
    });
    

    또는이 외부 콜백의 값에 대한 참조를 유지 :

    var element = this;
    
    $.ajax({
        //...
        success: function(json) {
             // `this` refers to the jQXHR object
             // use `element` to refer to the DOM element
             // or `$(element)` to refer to the jQuery object
        }
    });
    

  2. 2.

    jQuery(".custom-filter-options .sbHolder ul li a").each(function () {
        var myStr = jQuery(this).text();
        var myArr = myStr.split(" (");
         url = 'your url'; // New Code
                data = myArr[0];
                    try {
                        jQuery.ajax({
                            url : url,
                            context: this,
                            type : 'post',
                            data : data,
                            success : function(data) {
                if(data){
                      jQuery(this).html(data);
                }else{
                      jQuery(this).html(myArr[0]);
                }
                            }
                        });
                    } catch (e) {
                    } 
    
    
    });
    
  3. from https://stackoverflow.com/questions/6394812/this-inside-of-ajax-success-not-working by cc-by-sa and MIT license