Jquery:mousedown效果(按下左键时)

Zeb*_*bra 27 javascript mouse jquery click

我需要一个按下按钮时执行功能的功能,当按钮松开时我停止执行

$('#button').--while being held down--(function() {
     //execute continuously
}); 
Run Code Online (Sandbox Code Playgroud)

Yi *_*ang 53

我相信这样的事情会起作用:

var timeout, clicker = $('#clicker');

clicker.mousedown(function(){
    timeout = setInterval(function(){
        // Do something continuously 
    }, 500);

    return false;
});

$(document).mouseup(function(){
    clearInterval(timeout);
    return false;
});
Run Code Online (Sandbox Code Playgroud)

看这个演示:http://jsfiddle.net/8FmRd/

  • 一个问题 - 如果你放开击中区域,效果将永远循环.你可能应该看一下整个文档中的`mouseup`函数,而不仅仅是`clicker`. (14认同)
  • @Jeriko你是对的.我现在正在编辑我的答案 (3认同)

小智 18

对原始答案的一个小修改:

$('#Clicker').mousedown(function () {
    //do something here
    timeout = setInterval(function () {
        //do same thing here again
    }, 500);

    return false;
});
$('#Clicker').mouseup(function () {
    clearInterval(timeout);
    return false;
});
$('#Clicker').mouseout(function () {
    clearInterval(timeout);
    return false;
});
Run Code Online (Sandbox Code Playgroud)

使用Clicker上的mouseout事件,当您将鼠标移出点击区域时,它会停止.

我建议两次做同样的事情的原因是为了获得更平滑的效果.如果在设置超时之前没有执行过一次,那么在发生某些事情之前,这将延迟500毫秒.