首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery mousedown + mousemove

Jquery mousedown + mousemove
EN

Stack Overflow用户
提问于 2009-10-15 13:45:28
回答 13查看 89.7K关注 0票数 32

如何在JQuery中创建鼠标按下并移动时触发的事件?而且每次mousedown + mousemove只触发一次?

EN

回答 13

Stack Overflow用户

发布于 2009-10-15 14:23:33

更新:

所以,看起来如果你的鼠标不再停留在onmouseup绑定的元素上,它将看不到鼠标向上事件。这是有道理的,但当mousedown事件发生在元素上时,作为UI用户,我们希望它知道它是什么时候释放的(即使它不在元素上)。

因此,为了解决这个问题,我们实际上在文档级别检测鼠标向上。

代码语言:javascript
复制
var clicking = false;

$('.selector').mousedown(function(){
    clicking = true;
    $('.clickstatus').text('mousedown');
});

$(document).mouseup(function(){
    clicking = false;
    $('.clickstatus').text('mouseup');
    $('.movestatus').text('click released, no more move event');
})

$('.selector').mousemove(function(){
    if(clicking == false) return;

    // Mouse click + moving logic here
    $('.movestatus').text('mouse moving');
});

我在jsbin上尝试了一下,它似乎起作用了。在这里查看:http://jsbin.com/icuso。要编辑它(参见JS和HTML),只需在URL末尾添加" edit“标签。http://jsbin.com/icuso/edit

票数 61
EN

Stack Overflow用户

发布于 2012-04-22 22:48:00

使用以下代码

代码语言:javascript
复制
$(element).mousemove(function(e){
 if(e.which==1)
 {
   #do job
 }
});

更新:

对于某些浏览器,您可能需要使用以下代码:

代码语言:javascript
复制
$(element).mousemove(function(e){
 if(e.buttons==1)
 {
   #do job
 }
});
票数 42
EN

Stack Overflow用户

发布于 2012-09-27 08:26:34

对于音频音量控制器,我执行了以下操作:

代码语言:javascript
复制
$('#control-vol').bind('mousedown', function(e){
    $('#control-vol').bind('mousemove', function(e){
        var volumen = e.pageX - this.offsetLeft;
        $('#barra-vol').width(volumen + 'px');
        $('audio')[7].volume = volumen/50;
    });

    $('#control-vol').bind('mouseup',function(){
        $('#control-vol').unbind('mousemove')
    });
});
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1572483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档