javascript - 如何跟踪菜单中的 CSS 类?
问题描述
我们有以下菜单,其ul > li > a
结构中添加了 CSS 类到<a>
标签中。当断点小于 768px 时,我们要删除 CSS 类。在页面加载时,我可以毫无问题地添加和删除 CSS 类,但是如果将窗口大小调整为大于 768 像素(宽度),我将无法重新添加 CSS 类。
棘手的部分是 CSS 类可能并不总是color--red
例如。它们可能是不同的,bkg--black
或者其他的。我正在考虑为 each 存储一个数组<a>
,但发现在on load
andresize
函数中,它们不接受数组。
如果使用 jQuery 调整窗口大小,我将如何跟踪每个 CSS 类<a>
并将它们添加回来?
这是我们尝试过的
$(function() {
$(window).on('load', function() {
if($(window).width() < 768) {
var el = $('#someid');
el.find("a").prop("class", function(i, cls) {
return cls.replace(/(^|\s)(color)--\S+/g, '');
});
}
});
$(window).resize(function() {
if($(window).width() < 768) {
var el = $('#someid');
el.find("a").prop("class", function(i, cls) {
return cls.replace(/(^|\s)(color)--\S+/g, '');
});
}
else {
// Stuck here.
}
});
});
.color--red { color: red; }
.color--blue { color: blue; }
.color--green { color: green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="someid">
<li><a class="color--red">Seamlessly brand equity invested infomediaries for.</a></li>
<li><a class="color--blue">Seamlessly brand equity invested infomediaries for.</a></li>
<li><a class="color--green">Seamlessly brand equity invested infomediaries for.</a></li>
</ul>
解决方案
我让它与 CSS 一起工作。
@media screen and (min-width: 768px) {
.color--red {
color: red;
}
.color--blue {
color: blue;
}
.color--green {
color: green;
}
}
.color--red {
color: initial;
}
.color--blue {
color: initial;
}
.color--green {
color: initial;
}
<ul id="someid">
<li><a class="color--red">Seamlessly brand equity invested infomediaries for.</a></li>
<li><a class="color--blue">Seamlessly brand equity invested infomediaries for.</a></li>
<li><a class="color--green">Seamlessly brand equity invested infomediaries for.</a></li>
</ul>
推荐阅读
- liquid - 当计数器变量的值达到某个数字时,液体标记 {% break %} 退出 for 循环
- javascript - 模拟函数只调用一次
- r - 对 data.table 行应用函数,将前两列和结果保留为 data.table
- javascript - 在 Google Chrome 中,window.open 在带有 # 符号的 csv 上失败
- python - yum 默认将 python 包安装到磁盘的哪个位置?
- ios - 如何解析图像以使用多格式数据和 alamofire url 请求
- hyperledger-composer - composer-rest-server 错误:抛出错误;// 未处理的“错误”事件
- php - AWS S3 URL 与原始 URL 不同
- jquery - 如何从列表项切换类到显示:无,显示:块
- reactjs - 如何在公共组件中使用方法,以便一个需要它的组件和不需要它的其他组件使用它?