gpt4 book ai didi

javascript - 在 JavaScript 中对 SVG 形状的鼠标右键单击检测不起作用

转载 作者:可可西里 更新时间:2023-11-01 02:15:03 24 4
gpt4 key购买 nike


我的脚本需要一些帮助,我想在其中检测人民币点击。
信息:最后我想在一个专用的 SVG 形状上显示我自己的右键单击菜单,它是使用 Raphael js lib 显示的,我发现网上有很多不同的例子,甚至是非常简单的实现,比如使用 jQuery - 但我必须能够检测到人民币是否被点击或任何其他。
我已经尝试(在 RMB 上没有成功)以下代码和平:

<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 标签内禁用它时(如注释掉)上下文菜单根本不显示,但是用RMB(2)还是收不到alert,

感谢您的所有提示/支持,鲍里斯

最佳答案

看起来 SVG 元素不会触发“点击”事件,而是在右键单击时触发“上下文菜单”。我正在使用 d3.js 来绑定(bind)事件,所以这对我有用:

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

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

关于javascript - 在 JavaScript 中对 SVG 形状的鼠标右键单击检测不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com