Raphael中的事件处理Javascript库
问题描述:
我正在使用Raphael JS库。 它太棒了,也符合要求。我试图弄清楚,如何为库中的所有节点编写一个通用的事件处理函数 。我需要'clicked'对象实例来定制它的点击事件。Raphael中的事件处理Javascript库
我已经在CSS中为'raphael canvas'声明了一个ID,因此对于画布上的任何点击,我都会使用jQuery在此处理程序中接收事件。我还为画布中的所有节点添加了“node.id”。
这是gen的原型。事件处理器。
$j('#holder').bind('click', function(event) {
// event handler.
}
但是,我无法接收被点击的节点的'对象实例'。
event.srcElement
属性也失败。
任何帮助将不胜感激。
谢谢, Karthik。
答
我认为问题可能是您正在使用jQuery的click函数将事件绑定到Raphael输出的DOM/SVG/VML,当它听起来像您想要获得的是原始的Raphael数据对象这个输出(而不是实际的输出本身)。
所以,你可能会通过调用Raphael自己的.click()
函数绑定到你第一次调用Raphael函数时定义的变量(例如var someVar = Raphael(xxx...);
中的someVar)来得到你想要的。
然后,在函数内部,this
应该给拉斐尔对象(尽管喊你已经从.click(function(){ });
中定义可能会更可靠的结果变量,尤其是如果以后你要bind an event to a set)。 event.target
很可能仍会提供实际点击的DOM元素。
这就是它如何工作的元素,相同或类似的逻辑可能会遵循纸张/画布本身。
出于好奇,为什么jQuery的$ j别名? (通常是jQuery或简单的:$)。 – jjmontes