jQuery检测持续的mousedown

use*_*223 2 jquery

有没有办法检测连续的mousedown?换句话说,我希望在按下鼠标左键的同时继续运行一个功能.这是我试图做的一个例子.我有一个控制scrollLeft位置的按钮.每次单击都会增加20,但是我希望它在按下鼠标按钮时继续增量并停止onmouseup.

与按下鼠标按钮时滚动条上的箭头的工作方式类似

    var wrapperDiv = $("#wrapper-div");
    var scrollWidth = 0;

    $("#right-button").click(function() {
      if(scrollWidth < wrapperDiv[0].scrollWidth) {
        scrollWidth = scrollWidth+20;
        wrapperDiv.scrollLeft(scrollWidth);
      }

});
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 6

不要使用click处理程序.使用两个单独的处理程序,一个用于mousedown,一个用于mouseup.

var $wrapper = $('#wrapper');

function startScrolling()
{
    // contintually increase scroll position
    $wrapper.animate({scrollLeft: '+=20'}, startScrolling);
}

function stopScrolling()
{
    // stop increasing scroll position
    $wrapper.stop();
}

$('#right-button').mousedown(startScrolling).mouseup(stopScrolling);
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/mattball/dkWGy/