【问题标题】:Accessing attributes (attr) of a Raphael element when triggering a mouseover event触发鼠标悬停事件时访问 Raphael 元素的属性 (attr)
【发布时间】:2023-04-10 05:38:01
【问题描述】:

当 mouseover 和 mouseout 事件触发时,我正在尝试访问和更新 Raphael 画布中元素的某些属性..

由于文档很少,我已经为此苦苦挣扎了一段时间。

以下代码失败,错误为 Object #<SVGCircleElement> has no method 'attr'

        $(circle.node).mouseover(function (e) {
            e.target.attr({ 'opacity': 0.2, 'fill': 'blue', 'stroke': 'white' });
        });

(非)功能代码可在此处获得:http://jsfiddle.net/agarcian/mDnAb/3/

任何帮助将不胜感激。

【问题讨论】:

  • e.target 是一个 DOM 元素,而不是一个 jQuery 对象。它类似于this。如果你想使用 jQuery 方法,你必须先将它传递给 jQuery。
  • 这是一个答案,不是评论:p
  • attr is undefined的可能重复
  • @ThiefMaster:幸运的是,这样做并没有反过来那么糟糕;)

标签: javascript raphael


【解决方案1】:

您需要使用$(e.target).attr(...),因为e.target 是一个普通的DOM 元素,还没有被jQuery 包装。

通过此更改,它可以正常工作:http://jsfiddle.net/ThiefMaster/mDnAb/4/

顺便说一句,您可以使用.hover() 而不是两个单独的事件:http://jsfiddle.net/ThiefMaster/mDnAb/5/

【讨论】:

  • 太棒了。这正是我一直在寻找的。正如我所说,文档非常稀疏......非常感谢您的帮助。
  • @agarcian:documentation 表示它是一个 DOM 元素:发起事件的 DOM 元素。.
猜你喜欢
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 2016-04-27
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
相关资源
最近更新 更多