下拉菜单的外部点击

时间:2019-06-24 19:41:52

标签: javascript angular

我下方有一个按钮(汉堡菜单)和一个下拉菜单。 当我单击汉堡包按钮时,我希望出现下拉菜单。 当我在下拉菜单之外单击时,我希望它们消失...从那以后的逻辑。

但是,触发出现的按钮也位于下拉菜单之外...因此,如果我在下拉clickoutside上放置一个事件,则我的按钮将永远不会被触发(click event + clickoutside dropdown =>没有任何反应)

那我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

我对这个问题有些困惑,但是我会继续回答我对这个问题的理解。 因此,您有一个汉堡图标,其下方是菜单下拉菜单,单击汉堡图标后您要打开菜单下拉菜单,然后单击其他按钮关闭菜单-面临的问题:汉堡包也在菜单下拉菜单之外

您可以对event.target进行检查,是否不遵守您的下拉菜单和汉堡包都具有的特定类的存在,因此,如果在event.target上没有单击该类,只要在文档上单击,就可以在元素上,然后通过应用可折叠类关闭下拉列表。

注意:

“。menu-element” 是应用于汉堡包元素以及菜单下拉菜单元素的类。

$(document).click(function(e) {
    	if (!$(e.target).is('.menu-element')) {
        	$('.collapse').collapse('hide');	    
        }
    });

答案 1 :(得分:0)

为按钮提供一个尚未使用的类名,然后在click事件上检查$ event目标及其类列表。如果它具有您选择的类名,请忽略外部点击事件。

如果您提供一些代码示例,我可以为您提供逐步的方法。