关于jQuery中mousedown和mouseup事件响应的问题解决
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于jQuery中mousedown和mouseup事件响应的问题解决,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2147字,纯文字阅读大概需要4分钟。
内容图文
最近在做一个网页的音乐播放器播放列表什么的都完成了,只剩最后一个进度条滑块的拖动效果了,我的思路是这样的:由$("#pulley").mousedown事件给这个控件bind一个mousemove事件 然后在mouseup的时候将mousemove事件解绑,但是事件的触发总是时灵时不灵的 苦恼中 ..上代码
$("#pulley").mousedown(function(){ $("#pulley").bind("mousemove", function(e){ $("#debug").text("start"); setschdule(e); }); }); $("*").mouseup(function(){ $("#pulley").unbind("mousemove"); $("#debug").text("test"); });
该元素mousedown的是应该给document或者body绑定mousemove事件,mouseup也应该绑定在document或者body上
试过了 mouseleave事件是指鼠标移开该控件时触发.. 和我的概念不一样
$("#pulley").mousedown(function () { //此处绑定document $(document).bind("mousemove", function (e) { $("#debug").text("start"); setschdule(e); }); }); $(document).mouseup(function () { //同上 $(document).unbind("mousemove"); $("#debug").text("test"); });
我的意思是这样,mousemove不绑在页面里万一手抖移出元素外事件不就停了
$("#pulley").mousedown(function(){ $(document).bind("mousemove", function(e){ $("#debug").text("start"); setschdule(e); }); }); $(document).mouseup(function(){ $("#pulley").unbind("mousemove"); $("#debug").text("close"); });
试过了 好像不可以 后面document解绑不了事件 然后滑块就停不下来了
解绑应该是$(document).unbind("mousemove");
原生的拖动 你可能考虑些这样的代码
oDiv2.onmousedown = function(ev){ var ev = ev || window.event; disY = ev.clientY - oDiv2.offsetTop; document.onmousemove = function(ev){ var ev = ev || window.event; var T = ev.clientY - disY; scrollBar(T); }; document.onmouseup = function(){ document.onmousemove = null; document.onmouseup = null; }; return false; };
我感觉需要考虑两点需要考虑,
1、第一鼠标移出目标区域,
如果浏览器不支持drag事件,应该考虑mouseleave事件,因为如果光标移出了目标区域,也就无法监控到mouseup事件了
2、浏览器支持drag事件,
我测试(chrome 53,对不起,我不知道由其它的浏览器)后发现,在mousedown事件触发之后,只要鼠标移动就会触发drag事件,不管鼠标移动到哪里,只要松开鼠标按键,就会触发dragend事件
总结:如果浏览器支持drag事件,那么直接使用drag事件,如果不支持的话,就得用同时写四个事件监听器了。
以上就是关于jQuery中mousedown和mouseup事件响应的问题解决的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的关于jQuery中mousedown和mouseup事件响应的问题解决全部内容,希望文章能够帮你解决关于jQuery中mousedown和mouseup事件响应的问题解决所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。