document.addEventListener('paste',newHandle, false);多次绑定同一事件,触发多次

本博客之作个人技术笔记来使用,同时分享给大家来看

首先说一下:我是在vue中获取剪切板的数据,然后对数据进行处理在做相关的操作

但是在成功后我有发现多次进行粘贴就是呈现累加执行,也就是第一次执行一次,第二次执行第一次和第二次,以此类推实现

在网上查了相关资料都是监听的 点击事件  就没有监听粘贴事件的 ,没具体差但是好像时只有document有点击事件,看了很久又说用闭包来解决的,不知道十我没看懂还是怎么滴就是成功不了,统计调用remove删除监听还是没用,最后灵光一闪我把remove删除监听放在add监听事件含视方法最后执行就成功了

    validatefocus(row,index,e){//获取焦点 row焦点单条的数据,index数组的下标,e是event事件,在下代码没用
      let _this = this
      function handleAction (event) {
                  // 获取粘贴板的内容
                    let pasteValue = (event.clipboardData || window.clipboardData).getData('text');
                    let paceArray = pasteValue.split(/\n/);
                    console.log(paceArray,'-----处理后')
                    paceArray.forEach((item,ind,arr)=>{
                      if(ind>index && ind<_this.tableData.length){
                        console.log('进去几回')
                        let inde=ind-index
                        _this.tableData[ind].i_to_data=parseFloat(arr[inde].replace(/\s*/g,""))
                      }
                    })
                    document.removeEventListener('paste', newHandle);
      }
      var newHandle = function (event) {
        handleAction(event)
      }
      document.addEventListener('paste',newHandle, false);
    }

 

posted @ 2021-04-15 11:14  嗯哼Nymph  阅读(1090)  评论(0编辑  收藏  举报