使容器保持打开状态,以便首次单击每个导航项
Keep container open for first click of each nav item
我正在尝试弄清楚如何做到这一点 - 我需要通过单击同级列表项来保持一个容器打开,然后在第二次单击时将其关闭。问题是返回到另一个链接并在其上留下处理程序。
这个概念是:
<ul id="nav">
<li><a href="#">Nav Item Two</a></li>
<li><a href="#">Nav Item Three</a></li>
<li><a href="#">Nav Item Four</a></li>
</ul>
<div id="nav-content">
<!-- Content changed with Ajax -->
</div>
使用它,我将内容与 ajax 互换,因此单击将其返回到我的"导航内容"div 中。当我单击一个项目时,我希望内容div 打开,然后在单击下一个导航项链接时保持打开状态,但在第二次单击时关闭。
尝试使用取消绑定,但我认为这不合适,而且它不起作用。有什么想法吗?
您可以通过以下方式执行此操作:
- 单击
li
时为其指定类 - 从所有其他
li
中删除该类 - 然后在隐藏或显示div 之前检查该类
本质上使用类来跟上上次单击li
$('#nav li').click(function(){
// remove the `active` cass form all `li`s in `#nav`
// except the one that was clicked
$('#nav li').not(this).each(function(){
$(this).removeClass('active');
});
// check if clicked element has `active` class
// if so it was just clicked for second time, close the div
if( $(this).hasClass('active') ){
$(this).removeClass('active');
$('#nav-content').hide();
}
else{
// if not it was clicked for the first time
// show the div and make the clicked element `active`
$(this).addClass('active');
$('#nav-content').show();
}
});
#nav-content{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="nav">
<li><a href="#">Nav Item Two</a></li>
<li><a href="#">Nav Item Three</a></li>
<li><a href="#">Nav Item Four</a></li>
</ul>
<div id="nav-content">
<!-- Content changed with Ajax -->
Here is some content
</div>
相关文章:
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 检测在确认页面导航时单击了哪个按钮
- 引导菜单没有't在导航栏中单击打开
- j查询单击导航不起作用
- 单击导航索引数组时发出双重警报
- Phonegap,如何在单击导航栏按钮时触发函数
- Jquery Mobile单击导航栏上的复选框按钮
- reactJS在转到另一个URL时如何传递状态?(单击导航栏上的“新建”,转到提交表单)
- 单击导航选项卡时分配jQuery功能
- 单击导航项定位链接时如何关闭切换菜单
- 单击导航按钮时,如何停止查询动画que
- 未捕获的TypeError: Cannot read property 'top'在引导中单击导航栏时未
- 如何打开下一个屏幕右键单击导航抽屉在反应原生
- 单击导航addClass/removeClass
- 如何使用selenium web驱动程序单击导航栏
- 单击导航后将模式滚动到顶部
- JavaScript按钮,单击导航到另一个HTML页面
- 将单击导航绑定到使用间隔的更改文本
- 如何防止单击导航栏项后重新加载单页应用程序
- 选项卡下拉菜单在引导保持关闭时,单击导航药丸