将变量值而不是其名称作为类传递

时间:2015-03-14 11:09:31

标签: javascript jquery arrays twitter-bootstrap class

我有一个包含列宽类值

的数组
var colWidth = ["col-sm-0", "col-sm-1", "col-sm-2", "col-sm-3", "col-sm-4", "col-sm-5", "col-sm-6", "col-sm-7", "col-sm-8", "col-sm-9", "col-sm-10", "col-sm-11", "col-sm-12"]

在他们自己的div中,在任何给定时间,页面上可能有或可能没有多个其他对象。这些div的列宽有所不同。

我有一个功能,只要页面上的任何宽度发生变化,就会运行。它被设置为从整个舞台宽度中减去页面上其他所有内容的宽度,然后将该值应用于主div。

function widthPlotter() {
    oldStageWidth = stageWidth;
    stageWidth = (12 - (panelWidth + menuWidth));
    newClass = colWidth[stageWidth];
    oldClass = colWidth[oldStageWidth];

    $(activeDiv).toggleClass('oldClass newClass')
}

我设置了toggleClass,因为我希望主列从其当前宽度平滑地动画,以便在其他任何更改时填充屏幕。

我的问题是:当代码执行时,它实际上将'oldClass'或'newClass'应用于div,而不是它们的值(例如col-sm-7)。

1 个答案:

答案 0 :(得分:0)

  

它实际上将'oldClass'或'newClass'应用于div,而不是它们的值(例如col-sm-7)。

当然可以,你给它一个文字字符串:'oldClass newClass'。引号构成一个字符串,而不是对变量的引用。

相反:

$(activeDiv).toggleClass(oldClass).toggleClass(newClass);

$(activeDiv).toggleClass(oldClass + " " + newClass);

......但第一个可能更清晰,同样有效。