1

現在、このコードを使用して右クリックを無効にしています:

$("body")
      .attr('ondragstart', 'return false')
      .attr('onselectstart', 'return false');

    var message='Right click is disabled on this page!';
    function clickIE4() {
      if (event.button==2) {
        alert(message);
        return false;
      }
    }

    function clickNS4(e) {
      if (document.layers||document.getElementById&&!document.all) {
        if (e.which==2||e.which==3) {
          alert(message);
          return false;
        }
      }
    }

    if (document.layers) {
      document.captureEvents(Event.MOUSEDOWN);
      document.onmousedown=clickNS4;
    } else if (document.all&&!document.getElementById) {
      document.onmousedown=clickIE4;
    }
    document.oncontextmenu = new Function('alert(message); return false');

これで、独自のコンテキスト メニューを実装aし、 class で特定の要素をクリックすると表示されます.context

http://medialize.github.io/jQuery-contextMenu/demo.htmlを使用しています

.contextだから私はクラスを除いてすべての右クリックコンテキストメニューを無効にしたいと思います

4

2 に答える 2

1

次のようなものを試すことができます:

 $('body *:not(.context)').on('contextmenu', function (evt) {
     evt.preventDefault();
 });

編集:これはうまくいくようです:

 $(document).on('contextmenu', function (evt) {
     if (!$(evt.target).is('.context')) {
         evt.preventDefault();
     }   
 });
于 2013-07-02T15:11:57.220 に答える
0

次のスニペットを使用します。

var message="Right click is disabled on this page!";
jQuery("*").on("contextmenu", function(e) {
    e.stopPropagation();
    if ($(this).hasClass("context")) {
        alert("Opening custom right-click menu.");
    }
    else {
        alert(message);
    }
    return false;
});

ここでデモをご覧ください。

于 2013-07-02T15:13:08.070 に答える