Raphael Javascript 库中的事件处理

发布于 2024-12-01 17:50:00 字数 430 浏览 1 评论 0原文

我正在使用 Raphael JS 库。 太棒了,也符合要求。我正在尝试弄清楚如何写 库中所有节点的通用事件处理程序。我需要“单击”对象实例来自定义它归因于单击事件。

我已经在 CSS 中声明了“raphael canvas”的 ID,因此对于画布上的任何点击,我都会使用 jQuery 在此处理程序中接收事件。我还为画布中的所有节点附加了“node.id”。

这是 gen 的原型。事件处理程序。

$j('#holder').bind('click', function(event) {

  // event handler.

}

但是,我无法接收单击的节点的“对象实例”。

event.srcElement 属性也失败了。

任何帮助将不胜感激。

谢谢, 卡蒂克。

I am working with Raphael JS library.
It's been so great and suits the requirements too. I am trying to figure out, how to write
a generic event handler for all the nodes in library. I would need the 'clicked' object instance to customize it's attributed on click event.

I have declared an ID for the 'raphael canvas' in CSS, so for any click on the canvas I would receive the event in this handler using jQuery. I have also attached 'node.id' for all the nodes in the canvas.

Here is the prototype of gen. event handler.

$j('#holder').bind('click', function(event) {

  // event handler.

}

However, I am unable to receive the 'object instance' of the node that was clicked.

event.srcElement attribute has also failed.

Any help would be greatly appreciated.

Thanks,
Karthik.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

快乐很简单 2024-12-08 17:50:00

我认为问题可能是您正在使用 jQuery 的 click 函数将事件绑定到 Raphael 输出的 DOM/SVG/VML,而听起来您想要获得的是控制此输出的原始 Raphael 数据对象(而不是比实际输出本身)。

因此,您可能会通过调用 Raphael 自己的 .click() 函数来获得您想要的东西,该函数绑定到您第一次调用 Raphael 函数时定义的变量(例如 var someVar = Raphael 中的 someVar (xxx...);)。

然后,在函数内,this 应该给出 Raphael 对象(尽管调用您已经在 .click(function(){ }); 中定义的变量可能会给出更多可靠的结果,特别是如果稍后您想要将事件绑定到一套)。 event.target 很可能仍然会给出实际被点击的 DOM 元素。

这就是元素的工作原理,纸张/画布本身可能遵循相同或相似的逻辑。

I think the problem may be that you are using jQuery's click function to bind the event to the DOM/SVG/VML that Raphael has output, when it sounds like what you want to get is the original Raphael data object that controls this output (rather than the actual output itself).

So you probably will get what you want by calling Raphael's own .click() function binding on to the variable you defined when you first called the Raphael function (e.g. the someVar in var someVar = Raphael(xxx...);).

Then, within the function, this should give the Raphael object (although calling the variable you already defined from within the .click(function(){ }); may give more reliable results, especially if later on you want to bind an event to a set). event.target will most likely still give the DOM element that was actually clicked on.

That's how it works for elements, the same or similar logic would probably follow for the paper/canvas itself.

八巷 2024-12-08 17:50:00

不应该是 event.target 吗?

(根据 http://api.jquery.com/category/events/event-object /)。

Shouldn't it be event.target ?

(according to http://api.jquery.com/category/events/event-object/).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文