Javascript 使用后解除单击功能的绑定

Javascript 使用后解除单击功能的绑定,javascript,jquery,html,Javascript,Jquery,Html,我正在做一个井字游戏,现在我想知道如何在点击后使按钮不可点击。 这里是游戏场: <div id="gamefield"> <table border="0"> <tr> <td><img alt="" title="" src="img/empty.jpg" /></td> <td><img alt="" title="" src="i

我正在做一个井字游戏,现在我想知道如何在点击后使按钮不可点击。 这里是游戏场:

<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>
这是游戏场的功能:

$("#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");
        }
    }
});
只需使用jquery而不是click()来添加事件处理程序:

.one(事件[,数据],处理程序)返回:jQuery

说明:将处理程序附加到元素的事件。对于每个事件类型,每个元素最多执行一次处理程序

添加的版本:1.1.1(事件[,数据],处理程序)

下面是代码的外观:

$('#gamefieldtr td').one('click', function (event) {
  // your logic here
})

使用one()添加的处理程序在触发后会自动删除,因此您无需自己执行。

如果要解除事件绑定,jquery中有该函数

.off()

.off(事件[,选择器][,处理程序])

说明: 删除事件处理程序


是否可能重复使用类将按钮标记为已单击,并在按钮显示类时在事件处理程序上返回false?
$('#gamefieldtr td').one('click', function (event) {
  // your logic here
})
$("#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");
        }
    }
});