2011-09-20 63 views
1

这似乎应该是简单,但我无法得到它的工作。JQuery的,如何AJAX调用后访问点击对象?

我有。点击绑定到某一类的许多按钮。点击该按钮后,它会将其ID传递给$ .post调用进行处理。

当.post的$调用成功返回,我想删除按钮,添加一个消息到容器,但我似乎不能在这一点上,即使访问按钮。

这里是。点击绑定:

$('.button').click(function() { 
    $.post('process.php', { 
     action: 'checkit' 
    }, 
    function(result) { 
     if (result == 'win') { 
      // Access the button that was pressed with jQuery 
     } 
     else { 
      alert("fail"); 
     } 
    }); 
}); 

我试过,$(本),这一点,也设置类似VAR触发变量=这是我进入初始点击功能,但没有这些工作。我得到未定义,或者它指向实际的JQuery对象,而不是按钮。

没有人有任何深入了解如何访问被点击在这一点上的按钮,使用jQuery的包装,本质上类似$(触发按钮)的.html()这样我就可以操纵正确的按钮?

谢谢你的时间。

回答

2

试试这个

$('.button').click(function() { 
    var $button = $(this); 
    $.post('process.php', { 
     action: 'checkit' 
    }, 
    function(result) { 
     if (result == 'win') { 
      $button.doStuff(); 
     } 
     else { 
      alert("fail"); 
     } 
    }); 
}); 
+0

哇,我发誓我试过了。也许我搞砸了它是如何输入的,或者错误地使用“this”而不是$(this)某处。以为我尝试过所有的组合后失败的工作。 感谢大家的评论。 – edeneye

4
$('.button').click(function() { 
    var clicked = $(this); 
    .... 

使用本地变量进行临时存储。

+0

+1 - 回调里面,你会再使用'clicked.remove()'。 – Tejs

+0

+1 - 也会推荐var name为'$ clicked',这样你就知道它是一个jQuery对象。 – jondavidjohn

+0

@johndavidjohn:有趣的建议,但让我想起了太多的PHP:D –

0

这是很容易做到:

$(this).foo('bar'); 
0

$('.button').click(function() { 
    $.post('process.php', { 
     action: 'checkit' 
    }, 
    function(result) { 
     if (result == 'win') { 
      $(this).html('something'); 
     } 
     else { 
      alert("fail"); 
     } 
    }.bind(this)); 
}); 

工作?

0

您正在尝试什么jsfiddle example。点击文字。只保留一个局部变量。