【发布时间】:2016-04-23 00:34:19
【问题描述】:
好的,这就是我想要做的。我有一个带有项目列表的仪表板(仪表板 1、仪表板 2、...等)。当我点击其中一个时,我试图让它们每个都有一个下拉栏。这是我得到的:
这是一个.html
<html>
<head>
<title>Database</title>
<link rel="stylesheet" type="text/css" href="styles.css"/>
<link rel="stylesheet" type="text/css" href="dashboard.css"/>
<script src="scripts/jquery-1.12.0.min.js"></script>
<script src="scripts/general.js"></script>
</head>
<body>
<div id="header">
<div class="logo">
<a href="index.html"><img src="/images/whatever.png"/></a>
</div>
</div>
<div id="container">
<div class="sidebar">
<ul id="nav">
<li><a class=selected href="#">Dashboard</a></li>
<li><a href="#">Dashboard 1</a></li>
<li><a href="#">Dashboard 2</a></li>
<li><a href="#">Dashboard 3</a></li>
<li><a href="#">Dashboard 4</a></li>
</ul>
</div>
<div class="content">
some content yay
<div id="box">
<div class="box-top">News</div>
<div class="box-panel"> This is simple news lalal</div>
</div>
</div>
</div>
</body>
</html>
这里是dashboard.css(注意,styles.css在这方面并不重要,主要是针对不同的页面,所以我不包括它):
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
div#dbheader {
width: 100%;
height: 50px;
background-color: #010101;
margin: 0 auto;
}
.logo a {
margin-left: 5px;
}
div#container {
width: 100%;
margin: 0 auto;
}
.sidebar {
width: 250px;
height: 100%;
background-color: #171717;
float: left;
}
.content {
width: auto;
height: 100%;
margin-left: 250px;
background-color: #222;
padding: 15px;
}
ul#nav li{
}
ul#nav li a{
text-decoration: none;
color: #aaa;
display: block;
padding: 10px;
font-size: 0.8em;
border-bottom: 1px solid;
border-color: #111;
-webkit-transition: 0.2s;
-moz-transition: 0.2s;
-o-transition: 0.2s;
transition: 0.2s;
}
ul#nav li a:hover,
ul#nav li a:active{
background-color:#030303;
color: #fff;
padding-left: 20px;
/* margin-left: 5px;*/
}
ul#nav li a.selected {
background-color: #030303;
color: #fff;
}
div#box {
margin-top: 15px;
}
div#box .box-top {
color: #fff;
text-shadow: 0px 0px 1px #000;
padding: 5px;
padding-left: 15px;
background-color: #2980b9;
font-weight: 300;
}
div#box .box-panel {
padding: 15px;
background-color: #fff;
color: #999;
}
最后,这是我的 general.js 文件:
$(document).ready(function(){
$("ul#nav li a.selected").click(function(){
$("ul#nav li").slideToggle('fast');
});
});
发生的情况是我想点击侧边栏菜单的 a.selected 部分,然后我希望我已经拥有的侧边栏(只是为了看看它是否有效)快速向下滑动。但发生的情况是,当我单击 a.selected(又名 Dashboard 1)时,整个侧边栏缩回到 Dashboard 1 中,并且仪表板侧边栏消失了。所以它基本上与我想要的相反。
有谁知道我该如何解决这个问题?
【问题讨论】:
-
我不清楚你想要达到什么目的。 “有一个下拉栏”是什么意思?但是,我可以告诉你为什么它正在做它正在做的事情。
slideToggle方法显示或隐藏应用它的元素。您在选择器“ul#nav li”上调用它,该选择器选择所有列表项,因此它们都被隐藏了。
标签: javascript jquery html css dashboard