Javascript 在mousemove上仅选择li元素一次

Javascript 在mousemove上仅选择li元素一次,javascript,Javascript,我有一个li元素的列表 我试图在mouseclick+mousemove上选择这些元素。 但是,它在我的mousemove函数中多次选择相同的元素: this.querySelector('.directory-list').addEventListener('mousedown', (e) => { this.querySelector('.directory-list').onmousemove = function(e) { this._targ

我有一个li元素的列表

我试图在mouseclick+mousemove上选择这些元素。 但是,它在我的mousemove函数中多次选择相同的元素:

this.querySelector('.directory-list').addEventListener('mousedown', (e) => {

        this.querySelector('.directory-list').onmousemove = function(e) {
          this._target = (e.target) ? e.target: e.srcElement;
          this._target.select();      
        } 
 });
假设我有这样的东西:

如果我想用鼠标选择这两个目录,由于我的onmousemove功能,它会选择它们大约10次


在这样做的同时,有没有办法消除重复的内容

您可以检查是否定义了_u目标,然后仅在未定义时定义/选择它

this.querySelector('.directory-list').addEventListener('mousedown', (e) => {
        this.querySelector('.directory-list').onmousemove = function(e) {
            if (!this_target) {
               this._target = (e.target) ? e.target: e.srcElement;
               this._target.select();      
            }
        } 
 });

然后在鼠标悬停时将其设置为null。

.querySelector.directory list“返回第一个匹配的项,在这种情况下,它将始终选择一个元素,第一个。在选择项之后,立即将onmousemove设置为null,这样就不会再次调用它。就像这样做的!不起作用。对于第一个mousedown+mousemove,它只选择第一个元素。当mouseup发生时,它甚至不允许选择第一个元素。那么在函数之外定义目标呢?我想问题可能是你设置了这个目标,在事件停止后,它就消失了。