代码之家  ›  专栏  ›  技术社区  ›  farhang

jquery类切换变量:意外标识符

  •  0
  • farhang  · 技术社区  · 8 年前

    速记:不知道为什么我找不到这个问题的答案。希望这不是个骗局。

    问题 :如何通过 至少 两个类作为一个toggleClass的jquery变量?

    在这个简单的片段中,如果我使用类名

    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)不工作。

    提前谢谢你

    1 回复  |  直到 8 年前
        1
  •  2
  •   baao    8 年前

    你需要使用

    $(this).toggleClass(varRed + ' ' + varUpper); 
    

    但我想知道为什么toggleClass(“红色上”)工作 toggleClass(varred varupper)没有。

    这就是在javascript中连接两个字符串的方法,这是您基本上要做的。

    不过,您也可以传递一个数组,这可能是更好的语法

    $(this).toggleClass([varRed, varUpper])