Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击外部div关闭jQuery中的问题_Jquery - Fatal编程技术网

单击外部div关闭jQuery中的问题

单击外部div关闭jQuery中的问题,jquery,Jquery,我在我的网站上有一个菜单按钮(“showmenu”),单击它会打开菜单分区。我还有一个代码,如果用户在菜单外单击,它会关闭菜单(我在这里找到) 这个代码给了我一个问题。我可以使用“showmenu”按钮打开菜单,但无法再次单击按钮关闭它。我关闭菜单的唯一方法是在菜单外单击 有什么建议吗?这行: container.has(e.target).length === 0 正在检查单击目标是否不是容器元素的父级。但是,通过检查长度是否等于零,当您想要检查长度是否为真时(即,当您单击容器的父容器之一时

我在我的网站上有一个菜单按钮(“showmenu”),单击它会打开菜单分区。我还有一个代码,如果用户在菜单外单击,它会关闭菜单(我在这里找到)

这个代码给了我一个问题。我可以使用“showmenu”按钮打开菜单,但无法再次单击按钮关闭它。我关闭菜单的唯一方法是在菜单外单击

有什么建议吗?

这行:

container.has(e.target).length === 0
正在检查单击目标是否不是容器元素的父级。但是,通过检查长度是否等于零,当您想要检查长度是否为真时(即,当您单击容器的父容器之一时隐藏容器),该值将计算为false

而且,你需要改变

e.target 

将其视为jquery对象

换行

container.has($(e.target)).length > 0

它应该会起作用

HTML是什么?谢谢你的回复。我更改了,虽然我可以打开和关闭菜单,但我不能在菜单外单击以关闭它。请参阅我编辑的回复。您还需要将e.target包装成$()以将其选择为jQuery对象
$(e.target) 
container.has($(e.target)).length > 0