【发布时间】:2010-04-24 22:51:33
【问题描述】:
我刚开始学习 javascript,并尝试编写一个小脚本来在页面上创建一个 div 网格。
这是脚本:
var tileWidth=50;
var tileHeight=100;
var leftPos=10;
var topPos=10;
var columns=10;
var rows=10;
var spacing=5;
$('document').ready(function() {
placeTiles();
});
function makeRow() {
for (var i=0; i<columns; i++) {
$('#canvas').append('<div class="tile" style="left:' + leftPos + 'px;top:' + topPos + 'px;"></div>');
var leftPos = leftPos + tileWidth + spacing;
}
}
function placeTiles() {
for (var i=0; i<rows; i++) {
makeRow();
var topPos = topPos + tileHeight + spacing;
}
}
目前,创建了 100 个 <div>s,所有这些都具有 10px 的顶部位置和未定义的左侧位置(对于该行中的第一个 <div>)或 NaN。
我应该做些什么不同的事情?为什么makerow() 看不到我的全局leftPos 变量(以及与此相关的所有其他变量)?
谢谢。
【问题讨论】:
-
不要在leftPos前面使用var,因为你已经在脚本顶部声明了left post
-
leftPos 抱歉,在你的 foreach 中从 "var leftPos" 中删除 var
标签: javascript global-variables scope