Javascript 是否有其他方法检测外部点击?

Javascript 是否有其他方法检测外部点击?,javascript,vue.js,click,dom-events,Javascript,Vue.js,Click,Dom Events,常用的方法是在body上附加一个单击事件侦听器,并检查e.target是否是您的元素,或者e.target是否包含您的元素 这很好,而且很有效,但我想知道是否有其他方法可以做到这一点,而不需要在目标之外的其他元素上附加事件,比如身体 我的用例是vuejs的选择框组件。在每个选择框组件的主体上附加click listener是不对的。不太正确。如果您的想法是监听外部容器(而不是内部容器)上的单击,那么您就不能真正避免将侦听器添加到外部容器看起来不错,可能值得一试。@YomS。这仍然可以,那么在调用

常用的方法是在
body
上附加一个单击事件侦听器,并检查
e.target
是否是您的元素,或者
e.target
是否包含您的元素

这很好,而且很有效,但我想知道是否有其他方法可以做到这一点,而不需要在目标之外的其他元素上附加事件,比如身体


我的用例是vuejs的选择框组件。在每个选择框组件的主体上附加click listener是不对的。

不太正确。如果您的想法是监听外部容器(而不是内部容器)上的单击,那么您就不能真正避免将侦听器添加到外部容器看起来不错,可能值得一试。@YomS。这仍然可以,那么在调用element.contains之前,我可以在该侦听器中添加一些性能改进吗?我认为每次点击都要运行它是很昂贵的。你可以附加一个监听器来处理多个框,尽管我不确定这是否值得。当不需要检测到单击时,不运行元素。包含检查,例如,选择框关闭。