这篇文章主要为大家介绍了JS的鼠标监听mouseup鼠标抬起失效原因及解决示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
一、起因及解决
由于很少使用除了click的监听事件,今天在使用mouseup时遇到一个坑,找了好久的bug。事情是这样的,我在写一个表情框,为了实现鼠标拖动表情框时,移动到相应的位置。所以配合使用到了mousedown和mouseup和mosemove。
1.mosedown: 用于鼠标按下进行选中该表情区域为可拖动;
2.mosemove:鼠标移动时,判断表情区域是否可拖动,,若可拖动,则开始允许拖动;
3.mouseup: 鼠标抬起该表情区域不可拖动;
但是我遇到的问题是,鼠标按下时,该表情区域可以拖动,但是鼠标松开时,表情区域还是可以根据我的鼠标位置进行拖动。
如下:
![上传中...]()
可以看到,我鼠标松开时,本来不可以移动的,但是现在却可以移动,后来研究了一下,发现表情区域怎么被我选中变色了,然后查了一下使用css禁止选中,就正常了。如下:
解决:
// 表情盒子样式
.emojiBox {
-webkit-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;
}
总结:
其实mouseup并没有失效,而是你拖动时,鼠标选中了其他的元素,其实的话,鼠标即使松开,浏览器内部还是认为用户在复制文字,鼠标还是按下的状态,所以不会触发mouseup事件。
以上就是JS的鼠标监听:mouseup(鼠标抬起)失效的详细内容,更多关于JS的鼠标监听:mouseup(鼠标抬起)失效的资料请关注编程学习网其它相关文章!
本文标题为:JS的鼠标监听mouseup鼠标抬起失效原因及解决
基础教程推荐
- ExtJS 3.x DateField menuListeners 显示/隐藏 2022-09-15
- vue的 Mixins (混入) 2023-10-08
- Vue+WebSocket实现在线聊天 2023-10-08
- 第7天:CSS入门 2022-11-04
- 基于bootstrap的上传插件fileinput实现ajax异步上传功能(支持多文件上传预览拖拽) 2023-02-01
- 深入浅析Jsonp解决ajax跨域问题 2022-12-28
- ECSHOP中实现ajax弹窗登录功能 2023-01-31
- 解决ajax的delete、put方法接收不到参数的问题方法 2023-02-23
- 关于 css:WebKit (iPad) CSS3: 背景过渡闪烁 2022-09-21
- 分页技术原理与实现之无刷新的Ajax分页技术(三) 2023-01-20