#javascript #jquery #html #css
#javascript #jquery #HTML #css
Вопрос:
Я пытаюсь воссоздать этот статус заказа в HTML / CSS:https://www.sitepoint.com/community/t/order-status-table-html-css-help/101907/3
И столкнулся с той же проблемой с автором. Таблица находится в свернутом виде, когда еще не нажата, затем разворачивается, после чего выбирается номер заказа.
В случае наличия нескольких номеров счетов, как я могу открыть ТОЛЬКО ВЫБРАННУЮ СТРОКУ, потому что в моем случае она открывает все сведения о номере счета, а не о выбранном.
jQuery(document).ready(function() {
jQuery('.closedArrow').click(function() {
$('.expanded').toggle();
$('.collapsed').toggle();
$( "span.closedArrow" ).toggleClass( "openArrow" );
});
});
.closedArrow {
<!-- background: url('http://is200.imagesocket.com/images/2014/10/29/2716484-3exx.png') no-repeat 1px 1px; -->
padding-left: 20px;
padding-bottom: 10px;
padding-top: 4px;
cursor:pointer;
}
.openArrow {
<!-- background: url('http://is200.imagesocket.com/images/2014/10/29/2716483-0cvp.png') no-repeat 1px 1px; -->
padding-left: 20px;
cursor:pointer;
}
.steps {
margin:0 0 20px;
padding:0;
list-style:none;
overflow:hidden;
}
.green {
background:#7dba00 !important;
color: #666666 !important;
}
.grey {
color: #666666 !important;
}
.open .green:after {
border-left-color: #7dba00 !important;
}
.wrap .num.last:after {
display:none
}
.wrap .num.last:before {
display:none
}
.black {
background:#000 !important;
color:#fff!important;
}
.open .black:after {
border-left-color: #000 !important;
color:#fff!important;
}
.steps li {
float:left;
position:relative;
}
.wrap {
float:left;
}
.num {
width:30px;
height:30px;
line-height:30px;
border-radius:50%;
background:#7dba00;
color:#000;
font-weight:bold;
text-align:center;
float:left;
position:relative;
margin:0 4px 0 0;
}
.num b, .steps p span {
position:relative;
z-index:2;
display:block;
}
.num:after {
content:" ";
width: 0;
height: 0;
border-top: 14px solid #fff;
border-bottom: 14px solid #fff;
border-left: 14px solid #7dba00;
position:absolute;
right:-4px;
top:1px;
}
.steps p {
background: #fff;
margin: 0;
float: left;
height: 30px;
line-height: 14px;
font-size: 10px;
width: 10em;
padding: 0 10px 0 0px;
text-align: center;
}
.closed .num:after {
border-left-color:#000
}
.closed .num {
color:#fff;
background:#000
}
.closed .num.last:after {
display:none
}
.open .num:after {
border-left-color:#ccc;
border-top-color:transparent;
border-bottom-color:transparent;
z-index:1;
}
.open .num:before {
width: 0;
height: 0;
content:" ";
position:absolute;
border-top: 15px solid #fff;
border-bottom: 15px solid #fff;
border-left: 15px solid #7dba00;
position:absolute;
right:-5px;
top:0;
z-index:0;
}
.open .num {
background:#ccc;
}
.open .wrap {
border-radius:15px 0 0 15px;
border:1px solid #7dba00;
}
li.open:after {
content:" ";
width: 0;
height: 0;
border-top: 16px solid #fff;
border-bottom: 16px solid #fff;
border-left: 15px solid #7dba00;
position:absolute;
right:0;
top:0;
z-index:0;
}
li.open:before {
width: 0;
height: 0;
content:" ";
border-top: 15px solid transparent;
border-bottom: 15px solid transparent;
border-left: 14px solid #fff;
position:absolute;
right:1px;
top:1px;
z-index:1;
}
.expanded {
display:none;
<!--bbackground-color: red;-->
padding-right: 900px;
}
.tab {
<!--background-color: yellow; -->
<!--border: 2px solid black; -->
border-collapse: collapse;
box-shadow: inset 0 1px 0 #fff;
font-size: 12px;
line-height: 15px;
text-align: left;
width: 85%;
margin-left: 230px;
}
.column {
float: left;
width: 25%;
}
.row:after {
content: "";
display: table;
clear: both;
}
@media screen and (max-width: 600px) {
.column {
width: 100%;
}
}
.completed span {
background-color:NONE;
color:#95db89;
border:2px solid #95db89;
}
.todo span {
background-color:none;
color:#E1E6EB;
border:2px solid #E1E6EB;
}
.list span {
color:#58D68D;
font-weight:500;
font-size: 12px;
}
.breadcrumb-pagination div p {
text-align:center;
line-height:0;
margin:30px auto 25px;
}
.active p {
border-bottom:2px solid #00abc9;
padding-bottom:27px;
margin-bottom:0px !important;
color: #3c4043;
font-weight:700;
}
.completed p {
color:#bsb7c1;
}
.list p {
color:#3c4043;
font-weight:700;
}
.completed span::before {
content: '2713'
}
.title{
text-align:center;
text-decoration: none;
margin-left: 365px;
color: #444;
}
table {
border-collapse: collapse;
box-shadow: inset 0 1px 0 #fff;
font-size: 15px;
line-height: 15px;
text-align: left;
width: 98%;
}
th {
background: linear-gradient(#000000, #4d4d4d);
border-left: 1px solid #555;
border-right: 1px solid #777;
border-top: 1px solid #555;
border-bottom: 1px solid #333;
box-shadow: inset 0 1px 0 #999;
color: #fff;
font-weight: bold;
padding: 10px 15px;
position: relative;
text-shadow: 0 1px 0 #000;
}
th:after {
background: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,.08));
content: '';
display: block;
height: 15%;
left: 0;
margin: 1px 0 0 0;
position: absolute;
top: 25%;
width: 100%;
}
th:first-child {
border-left: 1px solid #777;
box-shadow: inset 1px 1px 0 #999;
}
th:last-child {
box-shadow: inset -1px 1px 0 #999;
}
td {
border-right: 1px solid #fff;
border-left: 1px solid #e8e8e8;
border-top: 1px solid #fff;
border-bottom: 1px solid #e8e8e8;
padding: 8px ;
position: relative;
transition: all 300ms;
}
td:first-child {
box-shadow: inset 1px 0 0 #fff;
}
td:last-child {
border-right: 1px solid #e8e8e8;
box-shadow: inset -1px 0 0 #fff;
}
tr {
background: url(https://jackrugile.com/images/misc/noise-diagonal.png);
}
tr:nth-child(odd) td {
background: #f1f1f1 url(https://jackrugile.com/images/misc/noise-diagonal.png);
}
tr:last-of-type td {
box-shadow: inset 0 -1px 0 #fff;
}
tr:last-of-type td:first-child {
box-shadow: inset 1px -1px 0 #fff;
}
tr:last-of-type td:last-child {
box-shadow: inset -1px -1px 0 #fff;
}
h1 {
color: #444;
text-shadow:
1px 0px 1px #ccc, 0px 1px 1px #eee,
2px 1px 1px #ccc, 1px 2px 1px #eee,
3px 2px 1px #ccc, 2px 3px 1px #eee,
4px 3px 1px #ccc, 3px 4px 1px #eee,
5px 4px 1px #ccc, 4px 5px 1px #eee,
6px 5px 1px #ccc, 5px 6px 1px #eee,
7px 6px 1px #ccc;
text-align: center;
}
a:hover,a:focus{
outline: none;
text-decoration: none;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material Icons">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<h1> ORDER TRACKING SYSTEM </h1>
<br>
<table class="multiAccount">
<tr>
<th>Account #</th>
<th>Order #</th>
<th>Current Status (Ongoing)</th>
</tr>
<tr>
<td valign="top"><span class="closedArrow">4579637</span></td>
<td valign="top"><span class="closedArrow">5822412</span></td>
<td valign="top" class="collapsed"><ol class="steps">
<li>
<div class="num green"><b>1</b></div>
</li>
<li>
<div class="num green"><b>2</b></div>
</li>
<li class="open">
<div class="wrap">
<div class="num grey"><b>3</b></div>
<p><span>Order Provisioning</span><span>Done: 08/25/2014</span></p>
</div>
</li>
<li class="closed">
<div class="num"><b>4</b></div>
</li>
<li class="closed">
<div class="num last"><b>5</b></div>
</li>
</ol></td>
<tr>
<td valign="top"><span class="closedArrow">6784120</span></td>
<td valign="top"><span class="closedArrow">7893200</span></td>
<td valign="top" class="collapsed"><ol class="steps">
<li>
<div class="num green"><b>1</b></div>
</li>
<li>
<div class="num green"><b>2</b></div>
</li>
<li class="closed">
<div class="num"><b>3</b></div>
</li>
<li class="open">
<div class="wrap">
<div class="num grey"><b>4</b></div>
<p><span>Service Activation</span><span>Done: 08/25/2014</span></p>
</div>
</li>
<li class="closed">
<div class="num last"><b>5</b></div>
</li>
</ol></td>
<td colspan="2" class="expanded">
<ol class="steps">
<li class="open">
<div class="wrap">
<div class="num green"><b>1</b></div>
<p><span>Order Provisioning</span><span>Done: 08/25/2014</span></p>
</div>
</li>
<li class="open">
<div class="wrap">
<div class="num green"><b>2</b></div>
<p><span>Order Provisioning</span><span>Done: 08/25/2014</span></p>
</div>
</li>
<li class="open">
<div class="wrap">
<div class="num grey"><b>3</b></div>
<p><span>Order Provisioning</span><span>Done: 08/25/2014</span></p>
</div>
</li>
<li class="open">
<div class="wrap">
<div class="num black"><b>4</b></div>
<p><span>Order Provisioning</span><span>Done: 08/25/2014</span></p>
</div>
</li>
<li class="open">
<div class="wrap">
<div class="num black last"><b>5</b></div>
<p><span>Order Provisioning</span><span>Done: 08/25/2014</span></p>
</div>
</li>
</ol>
<div class="tableDiv">
<div class="tab-content tabs">
<div role="tabpanel" class="tab-pane fade in active" id="Section1">
<table border="2px">
<tr><th>ITEM</th><th>DETAILS</th></tr>
<tr><td>Order No.</td><td>5822412</td></tr>
<tr><td>Account Name:</td><td>Mead O'Brien</td></tr>
<tr><td>Services:</td><td>UNE POTS/T-1</td></tr>
<tr><td>Installation Address:</td><td>1217 W Capitol Ave, Little Rock, AR 72201 </td></tr>
<tr><td>Project Coordinator:</td><td>John Smith</td></tr>
<tr><td>Phone:</td><td>501-375-3719</td></tr>
<tr><td>Email:</td><td>jsmith@company.com</td></tr>
</table>
</div>
</div>
</div>
</tr>
</table>
</table>
</body>
</html>
Ответ №1:
Таким образом, будет затронута только выбранная строка
jQuery(document).ready(function() {
jQuery('.closedArrow').click(function() {
$(this).parents('tr').children('.expanded').toggle();
$(this).parents('tr').children('.collapsed').toggle();
$(this).toggleClass( "openArrow" );
});
});