JavaScript点击导航(多层) - 如何分离父点击和子点击
javascript onclick navigation (multiple layers) - how do I separate parent and child click?
http://jsfiddle.net/kGw8y/1602/
$('#global-nav li:has(ul)').click(function(){
$(this).find('> ul').stop().slideToggle(400);
});
我发现这是最初使用悬停的; 但是,我将其修改为单击。 如果您查看代码,子"站点"在其下也有链接,但是当您单击"站点"时,它也会激活主导航关闭它。
如何将"父级"点击与"子级"点击区分开来? 我希望这是一个简单的代码,可以在多层下工作,而无需添加越来越多的代码。
另外,我将如何在此代码中添加一个元素,如果顶层"child"在其下有链接,它会添加一个箭头(仍在黑色区域),单击时,箭头将旋转到向下位置。 然后,如果未选中,箭头将指向右侧。
感谢您的帮助。
编辑
如何使它适用于菜单按钮下拉导航的导航之外的按钮?
法典:
<a id="menu_button" class="hidecontent_full hidecontent_condensed" href="#">Menu</a>
<div class="nav">
<ul>
<li class="first"><a href="#">New?</a>
<ul>
<li><a href="welcome.php">Welcome</a></li>
<li><a href="whoweare.php">Who We Are</a></li>
<li><a href="whatwebelieve.php">What We Believe</a></li>
<li><a href="whenandwhere.php">When and Where</a></li>
<li><a href="staff.php">Crossroads Staff</a></li>
<li><a href="contact.php">Contact</a></li>
</ul>
</li>
<li><a href="#">Next Steps</a>
<ul>
<li><a href="nextsteps.php">What is Next Steps?</a></li>
<li><a href="connect.php">Connect</a></li>
<li><a href="grow.php">Grow</a></li>
<li><a href="serve.php">Serve</a></li>
</ul>
</li>
<li><a href="#">Ministries</a>
<ul>
<li><a href="kidz.php">Childrens Ministry</a></li>
<li><a href="fused.php">Student Ministry</a></li>
<li><a href="connectgroups.php">Connect Groups</a>
<li><a href="musicministry.php">Music Ministry</a></li>
<li><a href="prayerrequests.php">Prayer Requests</a></li>
</ul>
</li>
<li><a href="#">Resources</a>
<ul>
<li><a href="sermonarchives.php">Sermon Archives</a></li>
<li><a href="ccb.php">Church Community Builder</a></li>
<li><a href="parents.php">Parents</a></li>
<li><a href="Biblereadingplans.php">Bible Reading Plans</a></li>
<li><a href="recommendedbooks.php">Recommended Books</a></li>
</ul>
</li>
<li class="last"><a href="#">Events</a>
<ul>
<li><a href="merge.php">Merge</a></li>
<li><a href="Christmasonthefarm.php">Christmas on the Farm</a></li>
<li><a href="lovecamedown.php">Love Came Down</a></li>
<li><a href="dinnerfor8.php">Dinner for 8</a></li>
<li><a href="calendarofevents.php">Calendar of Events</a></li>
</ul>
</li>
<li><a href="#">Give</a>
<ul>
<li><a href="howtogive.php">How to Give</a></li>
</ul>
</li>
</ul>
</div> <!-- navigation -->
返回 false 可以防止事件通过 dom 冒泡并触发其他选定的元素。
编辑二
不过,代码实际上是相同的:
最后的小提琴
新吉斯菲德尔
旧吉斯菲德尔
.js
$('#global-nav li:has(ul)').click(function(){
$(this).find('> ul').slideToggle(400);
});
$('#menu_button').on('click', function() {
$(this).toggleClass('open');
});
.css
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
#menu_button {
display: inline-block;
padding: 15px;
width:200px;
background:#444;
color: white;
}
#global_nav {
display: none;
}
.open ~ #global-nav {
display: block;
width:200px;
background:#444;
}
#global-nav li a{
padding:15px;
}
#global-nav a{
display:block;
color:#fff;
}
#global-nav ul ul{
display:none;
background:#000;
}
#global-nav ul ul a:hover{
background:#222;
}
.html
<a id="menu_button" class="hidecontent_full hidecontent_condensed" href="#">Menu</a>
<div id="global-nav">
<ul>
<li class="first"><a href="#">New?</a>
<ul>
<li><a href="welcome.php">Welcome</a></li>
<li><a href="whoweare.php">Who We Are</a></li>
<li><a href="whatwebelieve.php">What We Believe</a></li>
<li><a href="whenandwhere.php">When and Where</a></li>
<li><a href="staff.php">Crossroads Staff</a></li>
<li><a href="contact.php">Contact</a></li>
</ul>
</li>
<li><a href="#">Next Steps</a>
<ul>
<li><a href="nextsteps.php">What is Next Steps?</a></li>
<li><a href="connect.php">Connect</a></li>
<li><a href="grow.php">Grow</a></li>
<li><a href="serve.php">Serve</a></li>
</ul>
</li>
<li><a href="#">Ministries</a>
<ul>
<li><a href="kidz.php">Childrens Ministry</a></li>
<li><a href="fused.php">Student Ministry</a></li>
<li><a href="connectgroups.php">Connect Groups</a>
<li><a href="musicministry.php">Music Ministry</a></li>
<li><a href="prayerrequests.php">Prayer Requests</a></li>
</ul>
</li>
<li><a href="#">Resources</a>
<ul>
<li><a href="sermonarchives.php">Sermon Archives</a></li>
<li><a href="ccb.php">Church Community Builder</a></li>
<li><a href="parents.php">Parents</a></li>
<li><a href="Biblereadingplans.php">Bible Reading Plans</a></li>
<li><a href="recommendedbooks.php">Recommended Books</a></li>
</ul>
</li>
<li class="last"><a href="#">Events</a>
<ul>
<li><a href="merge.php">Merge</a></li>
<li><a href="Christmasonthefarm.php">Christmas on the Farm</a></li>
<li><a href="lovecamedown.php">Love Came Down</a></li>
<li><a href="dinnerfor8.php">Dinner for 8</a></li>
<li><a href="calendarofevents.php">Calendar of Events</a></li>
</ul>
</li>
<li><a href="#">Give</a>
<ul>
<li><a href="howtogive.php">How to Give</a></li>
</ul>
</li>
</ul>
</div> <!-- navigation -->
您需要
在点击中event.stopPropagation()
:
$('#global-nav li:has(ul)').click(function(e){
e.stopPropagation(); // it stops the event to bubble up to the parent elems
$(this).find('> ul').stop().slideToggle(400);
});
相关文章:
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- angular 1.5应用程序中的导航栏
- 无法从jquery Mobile导航栏重定向到另一个页面
- 如何附着分离的对象
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 导航到特定事件的另一个变量页面
- MVC 3页面导航和使用javascript传递参数
- 如何在react js中从一个页面导航到另一个页面
- 如何使用jQuery each分离字符串中的元素
- 将JavaScript函数与HTML分离
- 导航栏没有调整到浏览器屏幕的大小
- 显示放大镜弹出窗口时隐藏导航内容
- DataTable按下键选择扩展/导航
- 正在检测导航到<a name=“;最新主题”></a>
- 将Javascript与HTML分离
- 带有url的单页网站导航
- 父页面的角度路由器导航高亮显示
- 使得导航项目分离衰落图像
- JavaScript点击导航(多层) - 如何分离父点击和子点击
- 附加到分离导航问题