在mousemove上只选择一次li元素

时间:2017-04-19 20:39:56

标签: javascript

我有一个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();      
        } 
 });

我们说我有这样的事情:
enter image description here

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

有没有办法摆脱重复这样做?

1 个答案:

答案 0 :(得分:1)

您可以检查__target是否已定义,然后仅定义/选择它。

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();      
            }
        } 
 });

然后在mouseup上将其设置为null。