这是我的代码:
var Paint = (function(cells) {
var step = $('.workplace').width()/cells;
var plants = [];
var cell = function(cells) {
for (var i=1; i < cells; i++) {
$('.workplace').append("<div class='line-vertical' style='left: " + step * i + "px;' >")
$('.workplace').append("<div class='line-horizontal' style='top: " + step *i + "px;'>");
}
return {
cell:cell
}
};)()
Paint.cell(10);
在此代码步骤= NaN中,为什么以及如何修复它?
答案 0 :(得分:1)
以下是您的代码的一个简短示例,它突出了问题...
var Paint = (function(cells) {
alert(cells);
})();
如果您定义了单元格参数......
var Paint = (function(cells) {
alert(cells);
})(5);
虽然我怀疑你想在cell
函数中做到这一点,所以将宽度计算移到那里。
答案 1 :(得分:0)
您正在定义一个带有单个参数(function(cells)
)的函数,但是您可以立即执行它而不需要任何参数;如果我们采用代码的第一行和最后一行,就可以得到:
var Paint = (function(cells) {
// code referencing cells here
};)()
这不会将Paint
分配给该函数,而是分配给执行该函数的结果,就像您写的那样:
function something(cells) {
// code referencing cells here
};
var Paint = something()
由于您正在执行没有参数的函数,cells
将是未定义的,因此出错的行:
var step = $('.workplace').width()/cells;
将数字除以未定义的变量。