2013-03-25 145 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"); 
});