我知道有很多问题要求如何防止Firefox在页面大于视口并且按下鼠标中键时激活的自动滚动模式。
但我真正需要的是能够在自动滚动激活时检测mouseup
事件。事件似乎没有传播,所以我不知道什么时候(更重要的是)鼠标按钮被释放。
我还可以选择检测自动滚动模式何时消失并且鼠标使用率恢复正常。
我准备了一个Plunk来玩。当它启动时,在任何地方中间单击,框中的文本将更新。如果按下按钮,则会向页面添加更多内容:中间单击将激活自动滚动,鼠标事件将永久丢失。
答案 0 :(得分: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();
});
答案 1 :(得分: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();
});
});
希望,这有帮助。!!!
答案 2 :(得分: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");
});