使用jquery制作动态网格
Making a dynamic grid with jquery
我正在尝试使用jquery创建一个动态网格,它最终会随着用户输入而改变(即16x16, 32x32等)。我的逻辑是创建16行,然后在每行中创建16个正方形,但是我在让正方形追加正确的数量时遇到了麻烦。
$(document).ready(function () {
for (var i = 0; i < 16; i++) {
$('.grid').append("<div class = 'row'></div>");
//$('.row').width(($('.square').width().val() * i);
//for (var i = 0; i < 16; i++) {
$('.row').append("<div class='square'></div>");
// }
}
});
这是一个链接到它的样子:https://lettda.github.io/EtchAsketch/
将内部for循环移到外部for循环之外应该创建适当数量的正方形,如下所示:
for (var i = 0; i < 16; i++) {
$('.grid').append("<div class = 'row'></div>"); // Each grid gets 16 rows
}
for (var i = 0; i < 16; i++) {
$('.row').append("<div class='square'></div>"); // Each row gets 16 squares
}
显式设置行宽度是不必要的,因为它将自动是你的正方形宽度的16倍加上你添加的任何填充/边距。注意,你所有的正方形都需要在CSS中display: inline-block;
以确保它们并排。此外,如果每行中有太多的正方形或正方形太宽,则行将自动换行。
.row
选择所有具有row
类的元素,这意味着您不将.square
div
s附加到仅最后创建的行,您将它们附加到所有先前创建的行。
为了防止这种情况,你可以这样做:
for (var i = 0; i < 16; i++) {
var row = $("<div class = 'row'></div>");
for (var j = 0; j < 16; j++) {
var square = $("<div class='square'></div>");
row.append(square);
}
$('.grid').append(row);
}
或
for (var i = 0; i < 16; i++) {
$('.grid').append("<div class='row' id='row"+i+"'></div>");
for (var j = 0; j < 16; j++) {
$('#row'+i).append("<div class='square'></div>");
}
}
相关文章:
- 在有角度的ui网格中设置动态列的问题
- 动态生成网格样式问题
- 冻结动态网格的标题行
- 动态网格作为自定义指令
- Extjs 4,如何使用单个Json文件为多个动态网格发送多个元数据
- 具有垂直堆栈的动态网格布局
- 如何使用煎茶触摸制作动态网格视图
- 事件的动态网格菜单
- 使用 Angularjs 的动态网格
- 添加在动态网格视图中输入的值
- 使用 ExtJS 创建动态网格
- 使用控制器中对象的位置 x,y 创建一个动态网格或表格 - 引导程序,AngularJS
- 如何使用javascript创建动态网格
- 如何使用marionete.js创建动态网格视图
- Javascript-动态网格花式删除选项
- 动态网格角与条形码生成器
- 如何使用CSS和JavaScript创建可定制的动态网格布局
- 用Javascript创建一个动态网格
- 使用jquery制作动态网格
- Openlayers 3动态网格-如何打开和关闭它