日期:2014-05-16  浏览次数:20979 次

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)的话,实践证明,是取不到任何对象的。具体原因,希望大神留言指教。。