0

听说按照标准,变量都需要在函数的顶部声明。

但是如果元素是在函数之间创建的,而另一个元素取决于创建元素的宽度或高度(动态),我们如何在顶部声明变量?

这是我的功能:

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.
        });

    })
}

如果我错了,有人会指导我以正确的方式仅在顶部声明所有变量吗?

4

2 回答 2

2

您可以在 JavaScript 中动态声明一个变量。无需声明。但即便如此,您仍想在顶部声明所有使用的变量。你可以用空值声明它们,然后为它们分配你想要的值

var colWidth,coloSize ;  // on the top you declare 
.
.
.
colWidth = $('.boardColumn').width();  // in the middle you assign them the value
coloSize = $('.boardColumn').size();
于 2012-12-27T14:09:49.083 回答
1

您可以在顶部声明它们,使用 null 值,并在创建元素时分配值

于 2012-12-27T14:05:14.193 回答