前端之家收集整理的这篇文章主要介绍了
ajax回调函数中$(this)没有作用的解决办法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面这段jquery代码,是可以达到预期效果的。
$(".derek").each(function(){
$(this).click(function(){
var params = $(this).parent().serialize();
var obj=$(this).parent().siblings("div#caskContent");
var form=$(this).parent();
$.ajax({
url:"editCaskContent",type:"post",data:params,dataType:"json",success:function(e){
obj.empty();
obj.html("<font color=\"#00AA00\">追问:</font>");
obj.append(e.caskContent);
form.toggle();
alert("修改成功!");
},error:function(e){
alert(e);
}
});
});
});
其中,大家可以看到,在发出ajax请求之前,我提前定义了两个变量,obj和form,分别用来存储两个jquery对象。如果在ajax的回调
函数内使用$(this)的话,实践证明,是取不到任何对象的。具体原因,希望大神留言指教。。