2011-07-07 50 views
11


我需要一些帮助,以便在脚本中查找RMB点击。
INFO:最后我想在专用的SVG图形上显示我自己的右键菜单,这是使用Raphael js lib显示的,我发现网上有很多不同的例子,甚至很简单的实现,就像jQuery一样 - 但我必须能够检测到人民币被点击或其他任何东西。
我已经试过(不含人民币成功)的代码如下和平:右键单击检测JavaScript中的SVG形状不起作用

<html> 
<head> 
    <script type="text/javascript" src="raphael.js"></script> 
    <script> 
     window.onload = function() { 
      var paper = new Raphael(document.getElementById('canvas_container'), 300, 300); 
      var shape = paper.path('m150,150l40,0l0,20l-40,0l0,-20z'); 
      var fill=shape.attr({fill:'#FFFFFF'}); 
      fill.click(function (evt){ 
       if(evt.button == 2) { 
        // right mouse button pressed 
        evt.preventDefault(); 
       } 
       alert("Pressed mouse = " + evt.button.toString()); 
      }); 
     } 
    </script> 
</head> 

<!-- <BODY oncontextmenu="return false"> --> 
<body> 
    <div id="canvas_container"></div> 
</body> 
</html> 

在IE
只检测LMB(0),在Chrome左(0)和中部(1),默认的上下文菜单显示,当我将其禁用body标签内(如注释掉)上下文菜单根本不显示,但我还是不能让人民币(2)警报,

谢谢所有的提示/支持, Borys

回答

28

看起来像SVG元素不会触发“点击”事件,而是触发右键点击“contextmenu”。我使用d3.js绑定的事件,所以这个工作对我来说:

.on("contextmenu", function(data, index) { 
    //handle right click 

    //stop showing browser menu 
    d3.event.preventDefault(); 
}); 
+0

在Chrome仍然是今天,29.0.1547版真。离奇! –