0

我知道有很多问题询问如何防止当页面大于视口并且您按下鼠标中键时 Firefox 激活的自动滚动模式。

但我真正需要的只是能够mouseup在自动滚动处于活动状态时检测到事件。该事件似乎没有传播,所以我不知道何时(更重要的是)释放鼠标按钮。

我也可以满足于检测自动滚动模式何时消失并且鼠标使用恢复正常。

我准备了一个Plunk来玩。启动时,在任意位置单击鼠标中键,框中的文本将更新。如果您按下按钮,页面会添加更多内容:中键单击将激活自动滚动,并且该mouseup事件将永远丢失。

关联

4

3 回答 3

1

这会给出结果吗?

$(selector).live('mouseup', function(e) { 

    if(e.which == 1) {

        alert("left");

    }if(e.which == 3) {

        alert("right button");

    }else if(e.which == 2) {

        alert("middle button"); 

    }

    e.preventDefault();

});
于 2013-07-16T15:26:27.520 回答
1
 $(document).ready(function(){

$("your id").on('mousedown', function(e) { 
   if( (e.which == 1) ) {
     alert("left button");
   } else if( (e.which == 3) ) {
     alert("right button");
   } else if( (e.which == 2) ) {
      alert("middle button"); 
   }
   e.preventDefault();
}).on('contextmenu', function(e){
   e.preventDefault();
});
});

http://jsfiddle.net/p49nF/

希望这可以帮助。!!!

于 2013-07-16T15:26:43.353 回答
0

知道了。

即使彼得的答案不正确,它也给了我正确的想法。

出于某种原因,如果您preventDefault()mousedown处理程序中,则该处理程序mouseup开始工作。

$(document)
  .on("mousedown", function(e) {
      if (e.which !== 2) return;
      $("#h").text("MouseDown");
      e.preventDefault();
    }).on("mouseup", function(e) {
      if (e.which !== 2) return;
      $("#h").text("MouseUp");
    });

解决方案

于 2013-07-16T15:54:12.750 回答