javascript - jQuery:如何减少事件监听器的数量?
问题描述
我有一个页面,其中包含四个不同的按钮和代码,如下所示:
jQuery(".orange-button").on("click", () => {
$(this).css("color", "orange");
$(".display-img").addClass("#orange-color-image");
...
});
jQuery(".red-button").on("click", () => {
$(this).css("color", "red");
$(".display-img").addClass("#red-color-image");
...
});
jQuery(".blue-button").on("click", () => {
$(this).css("color", "blue");
$(".display-img").addClass("#blue-color-image");
...
});
...
有没有办法压缩这段代码?它们都做非常相似的事情,但应用了不同的类和 CSS。
解决方案
只需使用一个循环:
for (const color of ["orange", "red", "blue"]) {
jQuery(`.${color}-button`).on("click", () => {
$(this).css("color", color);
$(".display-img").addClass(`#${color}-color-image`);
// ...
});
}
此代码使用模板字符串。
推荐阅读
- reactjs - 如何修复“(0,_reactNativeRedash.withTransition)不是函数”错误?
- excel - 有一个复选框将值添加到具有现有值的单元格
- r - 如何将具有坐标列表(MultliLineString)的列转换为R上的sf/st对象?
- embedded - 覆盖 SD 分区布局的 WKS_FILE
- java - 如何从存储库访问和返回 AsyncTask 的结果?
- heroku - 如何在 HerokuApp 上访问 root 以使用 wget 命令
- android - 计费 API 3.0。价格变动用户通知
- flutter - 什么是 NoSuchMethod 错误,我该如何解决?
- visual-studio-code - VS Code + PHP Intelephense + Remote-SSH + Symfony 3:未定义的方法错误
- php - KNP Paginator 在 Symfony 5 中显示 Invalid item per page number 错误