Javascript Raphael JS:如何从Dom对象(element.node)获取Raphael元素?

Javascript Raphael JS:如何从Dom对象(element.node)获取Raphael元素?,javascript,raphael,jquery-svg,Javascript,Raphael,Jquery Svg,我尝试使用Raphael的node函数获取DOM对象,并为上下文菜单添加一个事件处理程序。 但是,我需要从DOM对象的事件处理程序中获取Raphael元素 为了清楚起见,示例代码应该如下所示 var circle = paper.circle(100, 100, 100); var domObject = circle.node; var ele = domObject.get(0).raphael; // It's required in the domObject's event handl

我尝试使用Raphael的node函数获取DOM对象,并为上下文菜单添加一个事件处理程序。 但是,我需要从DOM对象的事件处理程序中获取Raphael元素

为了清楚起见,示例代码应该如下所示

var circle = paper.circle(100, 100, 100);
var domObject = circle.node;
var ele = domObject.get(0).raphael; // It's required in the domObject's event handler

有人知道如何实现吗?

直接完成这项工作只需要很少的额外工作。假设您拥有jquery contextMenu资源js、css、所有可用图像和Raphael纸张:


你可以看到这个代码。上下文菜单与我的css有一些冲突,但您可以看到基本功能在那里。

直接执行此操作所需的额外工作非常少。假设您拥有jquery contextMenu资源js、css、所有可用图像和Raphael纸张:


你可以看到这个代码。上下文菜单与我的css有一些冲突,但您可以看到基本功能。

嗨,丹。您不使用Raphael的click、hover或mouse*函数来处理事件有什么特殊原因吗?你没有理由不自己写,但我必须警告你,你上面描述的模式——循环链接dom对象和javascript对象——是造成内存泄漏的真正原因。我同意kevin的观点。。。您甚至可以在Raphael中使用eve功能来链接自定义事件……感谢Kevin和Aukhan,我尝试了它,因为我想为Raphael元素添加上下文菜单。我尝试使用的上下文菜单似乎需要一个DOM对象。。。请原谅我的天真问题,因为我不熟悉Raphael JS或javascript。那么,有没有什么好方法可以为Raphael元素添加上下文菜单呢?提前谢谢!嗨,丹。您不使用Raphael的click、hover或mouse*函数来处理事件有什么特殊原因吗?你没有理由不自己写,但我必须警告你,你上面描述的模式——循环链接dom对象和javascript对象——是造成内存泄漏的真正原因。我同意kevin的观点。。。您甚至可以在Raphael中使用eve功能来链接自定义事件……感谢Kevin和Aukhan,我尝试了它,因为我想为Raphael元素添加上下文菜单。我尝试使用的上下文菜单似乎需要一个DOM对象。。。请原谅我的天真问题,因为我不熟悉Raphael JS或javascript。那么,有没有什么好方法可以为Raphael元素添加上下文菜单呢?提前谢谢!凯文,如果我没有jQuery呢?凯文,如果我没有jQuery呢?
var x = 200, y = 200, r = 100, fs = 36;
var circle = paper.circle( x, y, r ).attr( { fill: 'red', 'fill-opacity': 0.5 } );
var label = paper.text( x, y, "CLICK" ).attr( { fill: 'white', 'fill-opacity': 0.75, 'font-size': fs, 'font-weight': 800 } );
var set = paper.set( circle, label );
$(set.node).contextMenu( { menu: 'myMenu' } );