JQuery button.click() 处理程序在没有点击的情况下触发

JQuery button.click() handler fires without click

现在我正在为我的拍卖游戏做一些清理代码,但是我的函数是在调用 endAuction() 之后立即触发的,而不是在单击按钮时触发的。我似乎无法弄清楚为什么,而且我对 JavaScript 或 jQuery 不是很熟悉,有人能指出我的问题吗?

endAuction:function()
{
    var i = 0;
    var btnID = "as" + (i).toString(),
        liID = "asli" + (i).toString();
    var cleanBtn = $('li#' + liID + ' button#' + btnID);
    cleanBtn.text("Sold!");

    var btn = $('#' + btnID);
    btn.off().click(this.cleanUpAuction());
},

cleanUpAuction:function()
{
    console.log("Removing button");
    userStats.money += currentBid;
    currentBid = 0;

    var i = 0;
    var liID = "asli" + (i).toString();
    var carElement = $('li#' + liID);

    carElement.remove();
},

您正在调用该函数,而不是为其分配引用。

改变

.click(this.cleanUpAuction()) 

.click(this.cleanUpAuction) 

.click($.proxy(this.cleanUpAuction, this))