表单元格事件侦听器



我有一段时间被这段代码困住了,不知道出了什么问题!此 jQuery 代码函数适用于游戏的单个网页应用程序。我需要通过单击它来更改表格单元格background-color但它不起作用:

$("document").ready(function() {
    var y, x, cellColor;
    //console.log("tata");
    $("#sizePicker").submit(function(event) {
        event.preventDefault();
    });
    $('input[type="submit"]').click(function makeGrid(y, x) {
        y = Number($("#inputHeight").val());
        x = Number($("#inputWeight").val());
        $("#pixelCanvas tr").remove();
        for (i = 0; i < y; i++) {
            $("#pixelCanvas").append("<tr class='vertical'></tr>");
        }
        for (j = 0; j < x; j++) {
            $(".vertical").append("<td class='cell' ></td>");
        }
        $("#pixelCanvas tr td").css("background-color", "red");
    });
    $("#pixelCanvas tr td").click(function() {
        $(this).css("background-color", "blue");
    });
});
我认为

问题是当您将单击事件绑定到表格单元格时,尚未创建这些单元格。尝试将点击事件绑定到正文,并使用"#pixelCanvas tr td"选择器筛选事件使用者:而不是$("#pixelCanvas tr td").click编写以下内容:

$("body").on("click", "#pixelCanvas tr td", function() {
    $(this).css("background-color", "blue");
});
问题是在

单击"input[type="submit"]"之前,元素还没有被创建。将单元格单击的绑定移动到"input[type="submit"]"的单击处理程序中:

$("document").ready(function() {
    var y, x, cellColor;
    //console.log("tata");
    $("#sizePicker").submit(function(event) {
        event.preventDefault();
    });
    $('input[type="submit"]').click(function makeGrid(y, x) {
        y = Number($("#inputHeight").val());
        x = Number($("#inputWeight").val());
        $("#pixelCanvas tr").remove();
        for (i = 0; i < y; i++) {
            $("#pixelCanvas").append("<tr class='vertical'></tr>");
        }
        for (j = 0; j < x; j++) {
            $(".vertical").append("<td class='cell' ></td>");
        }
        $("#pixelCanvas tr td").css("background-color", "red");
        $("#pixelCanvas tr td").click(function() {
           $(this).css("background-color", "blue");
        });
    });
});

最新更新