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))
现在我正在为我的拍卖游戏做一些清理代码,但是我的函数是在调用 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))