jquery - jquery 类切换变量:意外的标识符
问题描述
快速说明:不知道为什么我在 SO/其他地方找不到这个问题。希望不是骗子。
问题:如何将至少两个类作为变量传递给 jQuery 的 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('red upper') 有效,而 toggleClass(varRed varUpper) 无效。
这就是你在 JavaScript 中连接两个字符串的方式,这就是你基本上想要做的事情。
你也可以传递一个数组,这可能是更好的语法
$(this).toggleClass([varRed, varUpper])
推荐阅读
- javascript - Javascript ISReachable 不起作用。说require没有定义
- php - 如何将用户 ID 保存在 laravel 中特定用户使用软删除删除的记录中
- python - 如何读取文件夹中的所有图像?
- bash - Bash 解析器在命令行中以什么顺序转义字符和拆分单词/标记?
- swift - 为具有失败响应的字典数组实现 Codable
- javascript - Retyped.chartist 用法不清楚。如何创建基本折线图?
- android - 从 Firestore 获取数据后,方法总是返回 null
- java - 内存分配 Java 异常
- php - 将数据从一个表复制到另一个没有 ID
- java - 如何在 JavaFX 中延迟 10 秒在 TextArea 中附加文本?