1
$(document).on('mousedown', 'a', function(event){ 
    event.preventDefault();

    if(event.which == 1){
        if($(this).attr('target') != '_blank'){
            loadpage($(this).attr('href'));
        }
    }
}).on('contextmenu', 'a', function(event){
    event.preventDefault();
});

こんにちは、再び Stackoverflow!

現在のプロジェクトでは、すべてのリンクでマウスの右ボタンと中央ボタンを無効にしたいと考えています。マウスの左ボタンでクリックしたときに、リンクに が含まれていない場合はtarget="_blank"、AJAX を使用してそのページをロードする関数を呼び出す必要があります。(関数loadpage())。

このコードは問題なく動作しますが、マウスの中ボタンで新しいタブが開きます。これを解決するにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

2

そのイベント ハンドラー内で、

e.preventDefault():

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

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

In IE:

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

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

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

document.addEventListener('DOMMouseScroll', function(e){
    e.stopPropagation();
    e.preventDefault();
    e.cancelBubble = false;
    return false;
}, false);
于 2013-11-14T18:25:57.243 に答える