重新启动我的电网回路时出现问题
问题描述:
程序当前在开发工具中运行时没有错误。除了代码的最后部分外,所有内容都正在执行在提示中输入输入后,容器清除,但不会让我用新设置的变量在内部绘制它?重新启动我的电网回路时出现问题
var row=16;
var sizeofsquare=45;
function gridLife() {
for (var x = 0; x < row; x++){
for (var y = 0; y < row; y++){
$("<div class='square'></div>").appendTo(".container");
}
}
}
$(document).ready(function(){
gridLife();
$('.square').on('mouseenter', function() {
$(this).css('background-color', 'black');
});
});
$(document).ready(function(){
$('.buttons').click(function(){
$('.container').empty();
row = prompt ('How many sqaures would you like?');
sizeofsquare = 720/row;
});
});
答
问题是,您正在通过调用$('.container').empty()
删除所有方块,但是之后没有放回。在按钮点击处理程序结束时,应该再次调用gridLife()
来重新生成网格元素。
但是,它仍然不起作用,因为只有原始方形元素绑定了mouseenter
事件。新广场不再有这个事件处理程序。你可能通过再次打电话$('.square').on
解决这个问题,但这很混乱。最好的办法是使用可选的选择参数.on()
,像这样:
$('.container').on('mouseenter', '.square', function() {
$(this).css('background-color', 'black');
});
现在,所有.square
元素曾经的.container
元素中存在会自动触发同样的事件。
+0
你是男人。谢谢你的解释。 –
您可能需要将焦点放回要绘制的元素上。 – Difster