防止鼠标中键单击滚动

elw*_*wyn 22 javascript jquery scroll mouseclick-event

我正在寻找一种方法来阻止鼠标中键点击使浏览器开始滚动,并显示小滚动'指南针'.

我已经看到使用javascript禁用中间点击滚动但是解决方案比我想要的更多hackey,并且似乎不是我实际可以使用的东西.

我正在寻找一个更明确的"这是你如何做到"或"你不能这样做,儿子".

我当然对hacks和workarounds持开放态度.

仅仅因为SO代码看起来更好用代码,这就是我用来在右键或中键点击时关闭工具提示的内容.

msg.mousedown(function(e) {
    if (e.which == 2) {   //middle mouse click
        msg.hide();
        e.preventScrolling();   //if only this worked...
    }
    else if (e.which == 3) {   //right mouse click
        msg.hide();
    }
}).bind('contextmenu', function(e) {
    e.preventDefault();
}).click(function(e) {
    e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)

编辑:jQuery,JavaScript,无论如何,让我们现在玩得很好:)

编辑2:

我更感兴趣的是防止小卷轴'罗盘'而不是阻止页面滚动.我想从我最初的描述中不是很清楚.

pim*_*vdb 29

使用:

$('body').mousedown(function(e){if(e.button==1)return false});
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome:http://jsfiddle.net/PKpBN/3/

  • `addEventListener("mousedown", function(e){ if(e.button == 1){ e.preventDefault(); } });` 对我有用。 (2认同)