我听说,变量都需要通过标准在函数顶部声明。
但是如果在函数之间创建元素,而另一个元素依赖于创建元素的宽度或高度(dynamicaly),我们如何在顶部声明变量?
这是我的功能:
var stepSlider = function(holder,column){
$.each(holder, function(i,value) {
var container = $(value),
colCount = column,
boardViewer = container.find('.stepRangeCompound'),
boardHolder = container.find('.boardHolder'),
board = container.find('.indBoard'),
boardCount = board.size(),
boardWidth = board.outerWidth(true),
boardHeight = board.outerHeight(true),
initial=0;
//setting sizes
while(initial < boardCount){
if(initial % colCount === 0){
$('<div />',{
class:'boardColumn',
css:{
float:'left',
height:boardHeight*colCount
}
})
.appendTo(boardHolder) //after append only i am getting the width and element at all.
}
$('.boardColumn:last').append(board[initial]);
initial++;
}
var colWidth = $('.boardColumn').width(), //i am declaring variable here
coloSize = $('.boardColumn').size();
boardViewer.css({
width:colCount*colWidth // i am applying the values here.
});
boardHolder.css({
width:coloSize * colWidth // i am applying the values here.
});
})
}
如果我错了,任何人都会指导我以正确的方式宣布所有变量只在最顶层?
答案 0 :(得分:2)
您可以在JavaScript中动态声明变量。 无需声明。但即便如此,您仍希望在顶部声明所有使用过的变量。你可以用空值ans声明它们然后为它们分配你想要的值
var colWidth,coloSize ; // on the top you declare
.
.
.
colWidth = $('.boardColumn').width(); // in the middle you assign them the value
coloSize = $('.boardColumn').size();
答案 1 :(得分:1)
您可以在顶部声明它们,使用空值,并在创建元素时指定值