[英]unbind children from click for accordion
我有一个为SharePoint编写的手风琴菜单:
parent.click(function(event) {
event.preventDefault();
var childUL = $(this).closest("li").find("> ul");
var isVisible = childUL.is(":visible");
if($(e.target).hasId("#zz12_V4QuickLaunchMenu ul > ul > li > a")){
e.stopPropagation();
}
else if (isVisible) {
childUL.slideUp();
} else {
childUL.slideDown();
}
});
我遇到的问题是父<li>
的问题。 如果父级列表项具有url,则必须利用preventDefault
来确保onClick
事件不会正常触发,以便显示子菜单。 但是,我发现,由于我阻止了默认设置的激活,因此与单击普通单击事件相比,单击它们时,所有链接实际上都在上/下滑动。 我不知道在哪里/如何实现取消绑定事件。
编辑:根据下面的答案,我找到了所需的结构,并且能够停止传播。 但是,它将停止整个功能。 有人可以帮我找出正确的选择器吗? 不像下面建议的那样熟悉节点名称,因为它嵌套在SharePoint的500万个CSS类中。 我想使用尽可能直接的选择器。 如果您愿意提供帮助,请写出实际示例,谢谢!
你需要:
event.stopPropagation();
然后,子菜单中的链接将表现为普通链接。
进一步阅读: https : //developer.mozilla.org/en/docs/Web/API/Event/stopPropagation
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.