我正在制作一个井字游戏,我现在想知道如何在点击后使按钮不可点击。 这是游戏领域:
<div id="gamefield">
<table border="0">
<tr>
<td><img alt="" title="" src="img/empty.jpg" /></td>
<td><img alt="" title="" src="img/empty.jpg" /></td>
<td><img alt="" title="" src="img/empty.jpg" /></td>
</tr>
<tr>
<td><img alt="" title="" src="img/empty.jpg" /></td>
<td><img alt="" title="" src="img/empty.jpg" /></td>
<td><img alt="" title="" src="img/empty.jpg" /></td>
</tr>
<tr>
<td><img alt="" title="" src="img/empty.jpg" /></td>
<td><img alt="" title="" src="img/empty.jpg" /></td>
<td><img alt="" title="" src="img/empty.jpg" /></td>
</tr>
</table>
</div>
这是randomstart函数:
var randomStart = Math.floor(Math.random() * 2);
这是游戏场的功能:
$("#gamefieldtr td").click(function() {
if ($(".game-button").html() == "Start spel") {
alert("you can't start");
} else {
if(randomStart == 0){
var val = $(this).children().attr('src', 'img/cross.jpg');
randomStart = 1;
$("#playerTurn").html("1");
$("#turnImg").attr("src", "img/circle.jpg");
}
else {
var val = $(this).children().attr('src', 'img/circle.jpg');
randomStart = 0;
$("#playerTurn").html("0");
$("#turnImg").attr("src", "img/cross.jpg");
$('src', 'img/circle.jpg').unbind("click");
}
}
});
答案 0 :(得分:5)
只需使用jquery&#39; s one()而不是click()来添加事件处理程序:
.one(events [,data],handler)返回:jQuery
说明:将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。
版本添加:1.1.one(events [,data],handler)
以下是代码的外观:
$('#gamefieldtr td').one('click', function (event) {
// your logic here
})
添加了一个()的处理程序会在被触发后自动删除,因此您不必自行执行此操作。
答案 1 :(得分:0)
如果要取消绑定事件,则jquery中有函数.off()
<强> .off()强>
.off(events [,selector] [,handler])
说明强> 删除事件处理程序。
$("#gamefieldtr td").click(function() {
// PUT THE LINE BELOW WHERE YOU WANT TO UNBIND YOUR CLICK EVENT OF YOUR TR
$("td").off("click", "#gamefieldtr");
if ($(".game-button").html() == "Start spel") {
alert("you can't start");
} else {
if(randomStart == 0){
var val = $(this).children().attr('src', 'img/cross.jpg');
randomStart = 1;
$("#playerTurn").html("1");
$("#turnImg").attr("src", "img/circle.jpg");
}
else {
var val = $(this).children().attr('src', 'img/circle.jpg');
randomStart = 0;
$("#playerTurn").html("0");
$("#turnImg").attr("src", "img/cross.jpg");
$('src', 'img/circle.jpg').unbind("click");
}
}
});