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

请问下$(this)在AJAX的success函数中不正常时怎么回事?谢谢
$("[name='sbtn']").click(function()
{
   var status=$(this).attr("status");
   if (status == 1){
     $.ajax({
url: "",
success: function( data ) {
if(data){
   $(this).attr("status",2);
                 }
}
});

}

$(this).attr("status",2);这句不能设置status属性,但把这句放到外面就可以,请问$(this)在这里不能获取到sbtn元素吗,应该怎么做?谢谢

------解决方案--------------------
你用调试器看看,this是啥再说。
------解决方案--------------------
你那个this指向的是ajax的配置,不是按钮,请认真看jquery的API,要做个闭包

$("[name='sbtn']").click(function()
{
   var status=$(this).attr("status");
   var me=this;////////
   if (status == 1){
     $.ajax({
url: "",
success: function( data ) {
if(data){
$(me).attr("status",2);
   ///////////$(this).attr("status",2);
                 }
}
});

}