6

新しいタブでリンクを開くというマウスホイールボタンのデフォルトのアクションを無効にする方法を見つけようとしています。

それは可能ですか?

4

4 に答える 4

9

特にミドルクリックをチェックする汎用クリックイベントハンドラーをバインドします。そのイベントハンドラー内で、次を呼び出しますe.preventDefault()

$("#foo").on('click', function(e) { 
   if( e.which == 2 ) {
      e.preventDefault();
   }
});

すべてのブラウザがこのデフォルトのアクションの防止をサポートしているわけではないことに注意してください。私にとっては、Chromeでのみ機能します。Firefox、Opera、IE9はすべて、マウスの中クリックでクリックイベントを発生させません。彼らはmouseupとmousedownを上げます。

于 2012-07-09T09:32:48.797 に答える
5

これは私のために働きます...

$(document).on("mousedown", "selector", function (ev) {
    if (ev.which == 2) {
        ev.preventDefault();
        alert("middle button");
        return false;
    }
});
于 2014-11-17T11:00:32.660 に答える
3

JAVASCRIPTを使用してマウスホイールイベントを無効にします

IEの場合

document.attachEvent('onmousewheel', function(e){
     if (!e) var e = window.event;
     e.returnValue = false;
     e.cancelBubble = true;
     return false;
}, false);

Safariの場合

document.addEventListener('mousewheel', function(e){
    e.stopPropagation();
    e.preventDefault();
    e.cancelBubble = false;
    return false;
}, false);

オペラで:

document.attachEvent('mousewheel', function(e){
    if (!e) var e = window.event;
    e.returnValue = false;
    e.cancelBubble = true;
    return false;
}, false);

Firefoxの場合

document.addEventListener('DOMMouseScroll', function(e){
    e.stopPropagation();
    e.preventDefault();
    e.cancelBubble = false;
    return false;
}, false);
于 2012-07-09T09:44:12.487 に答える
3

私のコード:

$(document).on('auxclick', 'a', function(e) {
if (e.which === 2) { //middle Click
    e.preventDefault();
    e.stopPropagation();
    e.stopImmediatePropagation();
    return false;
}
return true;
于 2017-07-04T11:23:47.843 に答える