javascript - 如何避免在子列表中调用回调函数
问题描述
我有一个名为“sub-menu”的 HTML 父列表,其中有一个子列表“sub-menu-real”。
<li class="sub-menu"><a href="#">HIDE<span class="sub-arrows"></span></a>
<ul class="sub-menu-real">
<li class="sub-menu-l1"><a href="#">Hide Level 1</a></li>
<li class="sub-menu-l2"><a href="#">Hide Level 2</a></li>
<li class="sub-menu-l3"><a href="#">Hide Level 3</a></li>
<li class="sub-menu-l4"><a href="#">Hide Level 4</a></li>
</ul>
问题是,当我使用 JQuery 定义单击“子菜单”时的回调函数时,单击子菜单时也会调用回调函数。
这是Jquery代码:
$(document).ready(function(){
$(".sub-menu").click(function(){
callbackFunction();
});
$(".sub-menu-l1").click(function(){});
$(".sub-menu-l2").click(function(){});
$(".sub-menu-l3").click(function(){});
$(".sub-menu-l4").click(function(){});
在这里,我只是在类中调用 callBackFunction,.sub-menu
但是当我单击子菜单子项时会调用它。
我怎样才能避免这个问题?
解决方案
您希望在触发子级事件时停止事件冒泡click
。
像这样的东西:
$(".sub-menu").click(function() {
callbackFunction();
});
$('.sub-menu-l1,.sub-menu-l2,.sub-menu-l3,.sub-menu-l4').click(function(e) {
e.stopPropagation();
});
推荐阅读
- ios - iOS Mapbox SDK - 如何将 MGLPointAnnotation 标记添加到地图图层中
- rational-team-concert - 工作区快照中更改的组件列表
- mysql - 如何修复“ [08S01] Communications link failure 成功发送到服务器的最后一个数据包是 0 毫秒前。”
- fastlane - 如何通过 Fastlane 将构建分发给外部测试人员?
- spring-boot - 无法通过 Thymeleaf 在 Spring Boot 中将日期插入 Oracle 数据库
- python - TensorFlow 声音识别
- html - 如何使用 Angular 中的 css 制作一个类似于引导弹出窗口的 div
- wordpress - 如何修复 phpMyAdmin 上的 HTTP 500?
- typescript - 类型索引意外工作并引发无法解释的错误
- ruby - 文本文件在 Scite 编辑器中正确编码为 utf-8,但无法在 ruby 中编码为 uft-8