javascript - 根据类隐藏点击或加载数据
问题描述
我的页面上有div
标签。哪个像标签一样切换。
<div class="cntstdtl_01 {{ !strpos($_SERVER['REQUEST_URI'], 'page') ? 'active' : '' }}">
//data here if url don't contain word page
</div>
<div class="cntstdtl_02 {{ strpos($_SERVER['REQUEST_URI'], 'page') ? 'active' : '' }}">
//display if URL has page word
</div>
//show if cntstdtl_02 has an active class, hide otherwise
<div class="page">
//show data
</div>
我试着这样做:
$('.page').hide();
$('#cntstdtl_01').on('click', function(){
$('.page').hide();
});
$('#cntstdtl_02').on('click', function(){
$('.page').show();
});
我也试过这样做
$('#cntstdtl_01').on('click', function(){
if($('div.cntstdtl_01').hasClass('active')){
$('.page').hide();
}
});//this isn't working
但是我对此的问题是,如果我必须先单击切换才能生效。我想要的是如果cntstdtl_02
在页面加载或单击时活动类枯萎,则自动显示 div。任何建议表示赞赏。
解决方案
此答案假定您的 HTML 实际上与您的问题中显示的确切顺序完全相同。这是一个纯 CSS 的解决方案,我相信如果可能的话,它比 Javascript/jQuery 解决方案更受欢迎。
div.page {
display: none;
}
div.cntstdtl_02.active + div.page {
display: block;
}
您默认“页面” div 不显示。然后,如果有一个具有“cntstdtl_02”和“active”类的div,其下一个元素是“page”div,我们将显示“page”div。
演示。当前显示“页面” div,因为存在“活动”类。删除“活动”类,运行小提琴,你会看到“页面”的 div 消失了。
div.page {
display: none;
}
div.cntstdtl_02.active + div.page {
display: block;
}
<div class="cntstdtl_01 active">
data here if url don't contain word page
</div>
<div class="cntstdtl_02 active">
display if URL has page word
</div>
<!-- show if cntstdtl_02 has an active class, hide otherwise -->
<div class="page">
show data
</div>
推荐阅读
- html - 如何在 CSS 中设置聊天框的样式?
- azure-devops - Visual Studio 测试步骤成功完成后未报告代码覆盖率结果
- python - 分数函数返回未减少的分数
- postgresql - 获取旧版本 JDBC jar 的文档
- batch-file - ftp.exe 找不到作为环境变量值的文件夹
- swift - Swift:使用闭包添加 2 个数字的程序
- javascript - 过滤数组 (JS)
- matlab - MATLAB - 将不同的数组/矩阵连接到更大的矩阵
- django - 添加带有 label_tag 的 Font Awesome 图标
- docker - 如何并行化 docker run?