我有一个包含列宽类值
的数组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)。
答案 0 :(得分:0)
它实际上将'oldClass'或'newClass'应用于div,而不是它们的值(例如col-sm-7)。
当然可以,你给它一个文字字符串:'oldClass newClass'
。引号构成一个字符串,而不是对变量的引用。
相反:
$(activeDiv).toggleClass(oldClass).toggleClass(newClass);
或
$(activeDiv).toggleClass(oldClass + " " + newClass);
......但第一个可能更清晰,同样有效。