全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JS中mouseup事件丢失的原因与解决办法

前言

当实现类似Excel选中区域的功能时,经常出现 mouseup 事件丢失的情况,由于缺少了 mouseup 事件,导致一个完整的操作无法进行。

如果你是想进行拖拽移动操作,也可以参考本文。

原因

目前发现两个原因:

  • 触发了浏览器的 drag 操作,导致mouseup丢失。
  • 由于鼠标离开了操作的区域,触发了mouseleave导致mouseup丢失。

解决办法

第一种情况

通过执行下面的代码阻止系统默认的操作来防止触发 drag 操作:

//在事件中
e=e || window.event;
pauseEvent(e);

//阻止事件冒泡
//不仅仅要stopPropagation,还要preventDefault
function pauseEvent(e){
 if(e.stopPropagation) e.stopPropagation();
 if(e.preventDefault) e.preventDefault();
 e.cancelBubble=true;
 e.returnValue=false;
 return false;
}

通过对事件调用pauseEvent方法可以防止出现drag操作,因此在区域内可以避免mouseup丢失。即使你想实现的本来就是 drag 操作,也可以通过创建跟随鼠标移动的dom元素实现效果。

第二种情况

由于鼠标移到了区域外,触发了 mouseleave 操作,因此在这种情况下要监听 mouseleave 操作,当触发该操作时可以停止或者还原状态。

特别注意的地方

当处理鼠标事件时,可以还要考虑是否要控制按下那个键时才允许操作。

Mouse事件中有一个 buttons 属性,该值标示鼠标按下了一个或者多个按键,如果按下的键为多个,值则为多个:

      0 : 没有按键或者是没有初始化

      1 : 鼠标左键

      2 : 鼠标右键

      4 : 鼠标滚轮或者是中键

      8 : 第四按键 (通常是“浏览器后退”按键)

      16 : 第五按键 (通常是“浏览器前进”)

多个值的时候,相当于进行|操作,即鼠标左右键同时按下时1|2=3。判断是否按下左键可以用value&1!=0进行,例如左右键同时按下时3&1!=0是true,说明按下了左键。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。


# js  # mouseup  # click  # javascript当onmousedown、onmouseup、onclick同时应用于同一个标签  # javascript简单拖拽实现代码(鼠标事件 mousedown mousemove mouseu  # 鼠标  # 按下  # 多个  # 右键  # 或者是  # 左键  # 你是  # 如有  # 可以用  # 你想  # 可以通过  # 事件中  # 鼠标右键  # 这篇文章  # 谢谢大家  # 在这种情况下  # 移到  # 本来就是  # 时才  # 解决办法 


相关文章: 如何选择高效便捷的WAP商城建站系统?  学校为何禁止电信移动建设网站?  C++如何使用std::optional?(处理可选值)  已有域名建站全流程解析:网站搭建步骤与建站工具选择  如何用免费手机建站系统零基础打造专业网站?  如何构建满足综合性能需求的优质建站方案?  如何选择香港主机高效搭建外贸独立站?  如何快速生成专业多端适配建站电话?  如何在搬瓦工VPS快速搭建网站?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  怎么将XML数据可视化 D3.js加载XML  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何用已有域名快速搭建网站?  如何通过虚拟主机快速搭建个人网站?  山东网站制作公司有哪些,山东大源集团官网?  如何在万网ECS上快速搭建专属网站?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  昆明网站制作哪家好,昆明公租房申请网上登录入口?  七夕网站制作视频,七夕大促活动怎么报名?  如何通过FTP空间快速搭建安全高效网站?  如何用腾讯建站主机快速创建免费网站?  如何实现建站之星域名转发设置?  建站之星如何快速生成多端适配网站?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  如何快速查询域名建站关键信息?  如何正确下载安装西数主机建站助手?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  建站之星好吗?新手能否轻松上手建站?  建站之星客服服务时间及联系方式如何?  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  手机网站制作与建设方案,手机网站如何建设?  Python多线程使用规范_线程安全解析【教程】  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  宝塔建站无法访问?如何排查配置与端口问题?  如何做网站制作流程,*游戏网站怎么搭建?  重庆市网站制作公司,重庆招聘网站哪个好?  如何通过万网虚拟主机快速搭建网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  电商网站制作公司有哪些,1688网是什么意思?  如何选购建站域名与空间?自助平台全解析  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何在香港免费服务器上快速搭建网站?  python的本地网站制作,如何创建本地站点?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  如何在阿里云域名上完成建站全流程?  制作网站外包平台,自动化接单网站有哪些?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。