2013-03-25 112 views
0

我想要使用ajax提交表單,然後添加一個「禁用」類,如果ajax請求成功。JavaScript範圍問題,ajax

$("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");,它確實有效。 (但顯然,在這種情況下,「已禁用」時將忽略Ajax調用是成功還是失敗補充。有人可以解釋如何得到這個工作是否正常?謝謝

回答

1

從你的成功回調取出_this參數,你正在重新定義_this原來那個是jQuery對象傳給的submit_form

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