快速说明:不知道为什么我在 SO/其他地方找不到这个问题。希望这不是骗局。
问 :如何将至少两个类作为变量传递给 jQuery for a toggleClass?
在这个简单的片段中,如果我使用类名,它可以完美地工作
var varRed = "red", varUpper = "upper";
$("#test").on("click", function() {
$(this).toggleClass('red upper');
});
.red{color: red;}
.upper{text-transform: capitalize;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">class toggle</div>
如何获得等效的$(this).toggleClass('red upper');
变量,例如?
$(this).toggleClass(varRed varUpper);
后者引发错误。
显然可以做到:
$(this).toggleClass(varRed).toggleClass(varUpper);
但我试图理解为什么.toggleClass('red upper'(有效而toggleClass(varRed varUpper(不起作用。
提前谢谢你
你需要使用
$(this).toggleClass(varRed + ' ' + varUpper);
但我试图理解为什么 .toggleClass('红色上部'( 有效并且 toggleClass(varRed varUpper( 不这样做。
这就是你在 JavaScript 中连接两个字符串的方式,这就是你基本上要做的。
你也可以传递一个数组,这可能是更好的语法
$(this).toggleClass([varRed, varUpper])