Javascript JQuery,如何在ajax调用后访问click对象?

Javascript JQuery,如何在ajax调用后访问click对象?,javascript,jquery,Javascript,Jquery,这似乎应该是直截了当的,但我很难让它工作 我有一个。点击绑定到某个类的许多按钮。单击该按钮时,它将其id传递给$.post调用进行处理 当$.post调用成功返回时,我想删除该按钮并向容器添加消息,但此时我甚至无法访问该按钮 以下是链接。单击“绑定”: $('.button').click(function() { $.post('process.php', { action: 'checkit' }, function(result) {

这似乎应该是直截了当的,但我很难让它工作

我有一个。点击绑定到某个类的许多按钮。单击该按钮时,它将其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");
        }
    });
});
我尝试过,$(this)、this,并且在输入初始单击函数时设置了一个变量,如var trigger=this,但这些都不起作用。我没有定义,或者它指向实际的JQuery对象,而不是按钮

有人知道我如何使用jQuery包装器(本质上类似$(triggered button).html()的东西)访问当时单击的按钮,以便操作正确的按钮吗

谢谢你抽出时间

$('.button').click(function() {
    var clicked = $(this);
    ....
使用局部变量进行临时存储

使用局部变量进行临时存储。

这很容易做到:

$(this).foo('bar');
这很容易做到:

$(this).foo('bar');
试试这个

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

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

工作?


工作?

您正在尝试的内容。点击文本。只需保留一个局部变量。

您正在尝试的内容。点击文本。保留一个局部变量。

+1-在回调中,您将使用
clicked.remove()
+1-还将重新命名变量名
$clicked
,这样您就知道它是一个jQuery对象。@johndavidjohn:有趣的建议,但让我想起了太多的PHP:D+1-在回调中,您将使用
clicked.remove()
+1-还会建议将var名称命名为
$clicked
,这样您就知道它是一个jQuery对象。@johndavidjohn:这是一个有趣的建议,但让我想起了太多的PHP:DWow,我发誓我试过了。也许是我搞错了它的打字方式,或者在某处错误地使用了“this”而不是$(this)。我以为我试过了所有的组合,但都失败了。谢谢大家的评论。哇,我发誓我试过了。也许是我搞错了它的打字方式,或者在某处错误地使用了“this”而不是$(this)。我以为我试过了所有的组合,但都失败了。感谢所有发表评论的人。