javascript - 更智能的 JQuery 选择器?
问题描述
目前在我的投资组合中,我有单独的功能来打开单独的灯箱。
$(".project.clientA").click(function(){
$(".lightbox.clientA").addClass("open", 500);
});
$(".project.clientB").click(function(){
$(".lightbox.clientB").addClass("open", 500);
});
$(".project.clientC").click(function(){
$(".lightbox.clientC").addClass("open", 500);
});
因为我对每个项目都有这样的功能,当你有很多项目时,这会使代码变得很长。我想知道是否有一种方法可以通过这样的方式将其模板化为一个适用于所有客户端(clientA、clientB、clientC 等)的函数。
$(".project.whateverclient").click(function(){
$(".lightbox.sameclient").addClass("open", 500);
});
希望这是有道理的。
解决方案
分班可能会有所帮助。
为"project clientA"
,做出来"project client nameOfA"
。
然后你可以使用选择器$(".project.client")
但是如果你不能这样做,一个性能更差的 jQuery 通配符方式将是:
$('.project[class*=client]')
对于第二个任务,您必须从函数体内知道实际的客户端名称,这应该会有所帮助:
Array.from(this.classList).filter(x => x.startsWith('client'))
推荐阅读
- c# - 带有 C# 的 Visual Studio Code (VSC)——“转到定义”或“查找所有引用”在哪里?
- javascript - 你能告诉我 express-mongo-sanitize 是否有效吗?
- tensorflow2.0 - 如何在 Tensorflow 的自定义层中重新排序张量列?
- azure - 从 VSCode 部署到 Azure 时出现“403 - 此 Web 应用程序已停止”
- javascript - 子元素的唯一键道具问题
- android-studio - 应用更新 Android Studio 版本名称和版本代码
- keyboard - 如果按下快捷键,如何获取热键定义?
- overflow - 容器滑动时隐藏文本
- python - 销毁项目的密码
- javascript - 如何修复以下代码中的“设置未定义”错误?不和谐.js v13