2013-03-25 5 views
0

아약스를 사용하여 양식을 제출 한 다음 아약스 요청이 성공하면 "사용 안함"클래스를 추가하고 싶습니다. 그것에서자바 스크립트 범위 문제, 아약스

$("body").on("click", ".my_form", function(e){ 
    submit_form(e, $(this));  
}); 

function submit_form(e, _this){ 
    e.preventDefault(); 
    $.ajax({ 
     type:"POST", 
     url:"/controller/common/form_processing.php", 
     data: "my form data goes here", 
     dataType: "json", 
     success:function (data, _this) { 
      _this.parents(".my_form").addClass("disabled"); 
     }); 
}); 

는 현재 양식이다, "비활성"클래스는 하지가 추가되는 것입니다. 그러나 Ajax 대괄호 밖에서 _this.parents(".thumbsup").addClass("disabled"); 행을 이동하면 작동합니다. (하지만이 경우 분명히 아약스 호출 성공 여부에 관계없이 "비활성화 됨"이 추가됩니다.) 누군가가 제대로 작동하는 방법을 설명 할 수 있습니까? 감사합니다.

답변

1

성공 콜백에서 _this 매개 변수를 제거하면 다시 정의됩니다. _this은 전달 된 jQuery 객체 인 것보다 submit_form

success:function (data) { 
    _this.parents(".my_form").addClass("disabled"); 
}); 
관련 문제