document mouseup 事件

document.addEventListener('mousedown',function(){
    document.addEventListener('mouseup',(event)=>{
        console.log(1);
    },false);
},false)

图片描述

每次鼠标抬起来的时候 控制台输出1,

但是发现鼠标点多几次后控制台不是每抬起一次鼠标 控制台输出一次。 一直重复点好像出现了循环输出。 这样会影响性能呀。

阅读 3.9k
1 个回答

你每按下一次鼠标就加了一个mouseup事件,然后就越来越多越来越多。
可以在mouseup的回调里把mouseup事件绑定解除了。

或者这样,做个简单的判断

document.addEventListener('mousedown',function(){
    if(document.eventMouseup){
        return false
    }else{
        document.addEventListener('mouseup',(event)=>{
            console.log(1);
        },false);
        document.eventMouseup = true;
    }   
},false)

或者参考这个问题,使用jQuery

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题