在单击下查找导致模糊的元素

Find element under click causing blur

有什么方法可以找出点击导致模糊的元素甚至被改造了吗?

我需要将 ui-select 的值设置为用户在下拉菜单外单击时输入的内容。但是当他点击下拉项时,输入应该被丢弃并且项目 selected。所以我应该明白当用户在 ui-select 的输入之外单击时鼠标在哪里。我试过了

element.find('input').on('blur', function (e) {
       e.target  
  ...
 });

但目标始终指向

input.form-control.ui-select-search.ng-valid.ng-touched.ng-dirty.ng-有效解析

Get element currently under mouse without using mouse events

总能找到突出显示的下拉项广告

Determine which element the mouse pointer is on top of in Javascript

不起作用,因为我无法使用任何 DOM X/Y 属性。

有什么想法吗?

ps: 没有jquery.

在输入焦点上,在根文档元素上设置 click eventListener

  1. 标识收到点击的元素(event.target,类似于您在上面的使用)
  2. for/while 遍历 event.target 及其所有父节点(一直向上 DOM 树),寻找 ["original" 专注 <input>]

如果 element.target 和任何 parent/ancestors 都不匹配,则您找到了该元素。无论您 return 匹配与否,您都希望在处理程序完成后删除 eventListener