jquery - 变量只需要声明函数的顶部吗?

时间:2012-12-27 14:02:20

标签: jquery

我听说,变量都需要通过标准在函数顶部声明。

但是如果在函数之间创建元素,而另一个元素依赖于创建元素的宽度或高度(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.
        });

    })
}

如果我错了,任何人都会指导我以正确的方式宣布所有变量只在最顶层?

2 个答案:

答案 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)

您可以在顶部声明它们,使用空值,并在创建元素时指定值