我打算在打开时将一个活动状态应用于表格链接。我拥有它以使其悬停橙色,但我希望它保持橙色,并在关闭时恢复为蓝色。这也需要能够在一个页面上应用于多个表/触发器。
我不是JS开发人员所以对此不了解。
这是一个JSfiddle:https://jsfiddle.net/yn1dmzmr/
$(document).ready(function() {
$('.drop-table').hide();
$('.open-table').each(function() {
$(this).show(0).on('click', function(e) {
e.preventDefault();
$(this).next('.drop-table').slideToggle(200);
$(this).toggleClass('active');
});
});
});
/* * * * * * * * * * * * * * * * * * * * */
/* DROPDOWN ICON FOR THE TABLES STYLES */
/* * * * * * * * * * * * * * * * * * * * */
.open-table div {
width: 100%;
height: auto;
display: block;
max-width: 250px;
background-color: #404E6A;
font-family: helvetica;
font-size: 14px;
color: #ffffff!important;
letter-spacing: 0px;
line-height: 50px;
text-indent: 30px;
position: relative;
}
.open-table div a {
text-decoration: none;
}
.open-table div:after {
content: '';
width: 30px;
height: 30px;
position: absolute;
right: 15px;
top: 10px;
z-index: 9;
background-color: #d3d3d3;
}
.open-table div:hover,
.open-table div:active {
background-color: #ff6600;
}
.open-table div:hover:after,
.open-table div:active:after {
transform: rotate(180deg);
}
.open-table div:hover {
background-color: #ff6600;
}
.active {
background-color: #ff6600!important;
}
/* * * * * * * * * * * * * * * * * * * * */
/* COMPARISON TABLE STYLES */
/* * * * * * * * * * * * * * * * * * * * */
.comparison-table {
width: 100%;
height: auto;
table-layout: auto;
font-family: helvetica;
font-size: 14px;
color: #000000;
letter-spacing: 0px;
line-height: 26px;
}
.comparison-table td {
width: auto;
text-align: center;
padding: 13px 0px;
border-right: 1px solid #d3d3d3;
}
.comparison-table tr:nth-child(odd) {
background-color: #d6d6d6;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="container lb-margin">
<a href="#" class="open-table">
<div>Overview</div>
</a>
<div class="drop-table">
<table class="comparison-table">
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
<a href="#" class="open-table">
<div>Overview</div>
</a>
<div class="drop-table">
<table class="comparison-table">
<colgroup>
<col class="col-1">
<col>
<col>
</colgroup>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
<a href="#" class="open-table">
<div>Overview</div>
</a>
<div class="drop-table">
<table class="comparison-table">
<colgroup>
<col class="col-1">
<col>
<col>
</colgroup>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
</div>
您正在将active
应用于锚元素。根据您的布局,您需要将其添加到div
。
//Table Show / Hide Code
$(document).ready(function() {
$('.drop-table').hide();
$('.open-table').each(function() {
$(this).show(0).on('click', function(e) {
// This is only needed if your using an anchor to target the "box" elements
e.preventDefault();
// Find the next "box" element in the DOM
$(this).next('.drop-table').slideToggle(200);
$(this).find('div').toggleClass('active');
});
});
});
/* * * * * * * * * * * * * * * * * * * * */
/* DROPDOWN ICON FOR THE TABLES STYLES */
/* * * * * * * * * * * * * * * * * * * * */
.open-table div {
width:100%;
height:auto;
display:block;
max-width:250px;
background-color:#404E6A;
font-family: helvetica;
font-size: 14px;
color: #ffffff!important;
letter-spacing: 0px;
line-height: 50px;
text-indent:30px;
position:relative;
a {
text-decoration:none;
}
&:after {
content:'';
width:30px;
height:30px;
position:absolute;
right:15px;
top:10px;
z-index:9;
background-color:#d3d3d3;
}
&:hover, &:active {
background-color:#ff6600;
&:after {
transform: rotate(180deg);
}
}
}
.open-table div:hover {
background-color:#ff6600;
}
.active {
background-color:#ff6600!important;
}
/* * * * * * * * * * * * * * * * * * * * */
/* COMPARISON TABLE STYLES */
/* * * * * * * * * * * * * * * * * * * * */
.comparison-table {
width:100%;
height:auto;
table-layout: auto;
font-family: helvetica;
font-size: 14px;
color: #000000;
letter-spacing: 0px;
line-height: 26px;
td {
width:auto;
text-align:center;
padding:13px 0px;
border-right:1px solid #d3d3d3;
}
tr:nth-child(odd) {
background-color:#d6d6d6;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container lb-margin">
<a href="#" class="open-table"><div>Overview</div></a>
<!--Close the table opener -->
<div class="drop-table" >
<table class="comparison-table">
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
<!-- Close the drop table area -->
<a href="#" class="open-table"><div>Overview</div></a>
<!--Close the table opener -->
<div class="drop-table">
<table class="comparison-table">
<colgroup>
<col class="col-1">
<col>
<col>
</colgroup>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
<!-- Close the drop table area -->
<a href="#" class="open-table"><div>Overview</div></a>
<!--Close the table opener -->
<div class="drop-table">
<table class="comparison-table">
<colgroup>
<col class="col-1">
<col>
<col>
</colgroup>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
<!-- Close the drop table area -->
</div>
<!--Close -->
你必须添加.open-table.active div
而不是.open-table div:active
所以你告诉浏览器我想在div
旁边有.open-table
时设置.active
样式,因此你不必使用!important
:
$(document).ready(function() {
$('.drop-table').hide();
$('.open-table').each(function() {
$(this).show(0).on('click', function(e) {
e.preventDefault();
$(this).next('.drop-table').slideToggle(200);
$(this).toggleClass('active');
});
});
});
/* * * * * * * * * * * * * * * * * * * * */
/* DROPDOWN ICON FOR THE TABLES STYLES */
/* * * * * * * * * * * * * * * * * * * * */
.open-table div {
width: 100%;
height: auto;
display: block;
max-width: 250px;
background-color: #404E6A;
font-family: helvetica;
font-size: 14px;
color: #ffffff!important;
letter-spacing: 0px;
line-height: 50px;
text-indent: 30px;
position: relative;
}
.open-table div a {
text-decoration: none;
}
.open-table div:after {
content: '';
width: 30px;
height: 30px;
position: absolute;
right: 15px;
top: 10px;
z-index: 9;
background-color: #d3d3d3;
}
.open-table div:hover,
.open-table.active div {
background-color: #ff6600;
}
.open-table div:hover:after,
.open-table div:active:after {
transform: rotate(180deg);
}
.open-table div:hover {
background-color:#ff6600;
}
.active {
background-color:#ff6600!important;
}
/* * * * * * * * * * * * * * * * * * * * */
/* COMPARISON TABLE STYLES */
/* * * * * * * * * * * * * * * * * * * * */
.comparison-table {
width:100%;
height:auto;
table-layout: auto;
font-family: helvetica;
font-size: 14px;
color: #000000;
letter-spacing: 0px;
line-height: 26px;
}
.comparison-table td {
width:auto;
text-align:center;
padding:13px 0px;
border-right:1px solid #d3d3d3;
}
.comparison-table tr:nth-child(odd) {
background-color:#d6d6d6;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="container lb-margin">
<a href="#" class="open-table">
<div>Overview</div>
</a>
<div class="drop-table">
<table class="comparison-table">
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td width="200">Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
<a href="#" class="open-table">
<div>Overview</div>
</a>
<div class="drop-table">
<table class="comparison-table">
<colgroup>
<col class="col-1">
<col>
<col>
</colgroup>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
<a href="#" class="open-table">
<div>Overview</div>
</a>
<div class="drop-table">
<table class="comparison-table">
<colgroup>
<col class="col-1">
<col>
<col>
</colgroup>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
<tr>
<td>Etching</td>
<td>Flat sheets up to A2</td>
<td>Flat sheets up to A0</td>
<td>Flat sheets anysize</td>
</tr>
</table>
</div>
</div>
简单更新这个:
.active {
background-color:#ff6600!important;
}
至:
.active div {
background-color:#ff6600!important;
}