2016-11-01 12 views
0

以下のコードでは、右クリックがトラップされません。左クリックはうまく動作します。このコードは、dojoのドキュメントに記載されています。誰かがisRightが動作しない理由を教えてもらえますか?基本的に、要素を右クリックすると、ブラウザの右クリックメニューが表示され、コンソールメッセージは生成されません。dojoが右クリックイベントをトラップしない

https://dojotoolkit.org/reference-guide/1.10/dojo/mouse.html

on(myNode,'click',function(e) { 
     if (mouse.isLeft(e)){ 
      console.log("left click", e); 
     } else if (mouse.isRight(e)){ 
      console.log("right click",e); 
     } 
}); 

答えて

1

ブラウザの右コンテキストメニューがクリックイベントを消費クリックしてください。 「クリック」の代わりに「マウス」を使用するとうまくいきます。また、javascriptの右クリック検出に関する多くの疑問があり、代替メソッドについて調べることができます。例:Failing to identify right click event in Mozilla Firefox。 dojo/mouseモジュールは、ほとんどの場合、通常のイベント処理よりもユーティリティラッパーであるため、これらの質問の情報は引き続き適用されます。

1

イベントclickを使用すると、mouse.isRightを検出できません。代わりに、次の例のようにmousedownを使用することができます。

https://jsfiddle.net/xgekrp5e/

require(["dojo/mouse", "dojo/on"], function(mouse, on) { 
    on(document, "mousedown", function(evt) { 
    if (mouse.isLeft(event)) { 
     // handle mouse left click 
     alert('MOUSE LEFT'); 
    } else if (mouse.isRight(event)) { 
     // handle mouse right click 
     alert('MOUSE RIGHT'); 
    } 
    }); 
}); 
関連する問題