我有一段时间被这段代码困住了,不知道出了什么问题!此 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");
});
});
});