首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取snap.svg中单击元素的ID

获取snap.svg中单击元素的ID
EN

Stack Overflow用户
提问于 2014-01-24 16:13:15
回答 1查看 8K关注 0票数 0

snap.svg http://snapsvg.io/的事件处理函数(例如,单击回调函数)中,获得属性snap.svghttp://snapsvg.io/中的属性(或者基本上帮助我识别事件发生的元素的任何属性)的最佳(跨浏览器)方法是什么?

这是一些代码。我所尝试的似乎在最新的Chrome和FF中有效,但我不知道是否有更好的方法。

代码语言:javascript
复制
    //add an Element, set id
    var mySvg = Snap('#mySvg');
    var myRect = mySvg.rect(10,10,200,100);
    myRect.attr({id:'myId'});

    //register click callback
    myRect.click(clickCallback);

    //click callback
    var clickCallback = function(event) {
       // how do I get the id of the clicked element?
       // is this cross browser valid?
       var id = event.target.attributes.id.nodeValue;
    };
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-24 22:47:21

我认为当前版本的Snap和id存在一个问题,它在下一个版本(现在可能是最新版本的0.2)中得到了修正,因此https://github.com/adobe-webplatform/Snap.svg/issues/166在某个时候值得一读。

但是,对于这些情况,我通常不使用这样的id,我会使用“this”。所以如果有了处理程序,它看起来就像.

代码语言:javascript
复制
var mySvg = Snap(400, 620);
var myRect = mySvg.rect(10,10,200,100);

var clickCallback = function(event) {
    this.attr({ fill: 'blue' });
};

myRect.click(clickCallback);

http://jsfiddle.net/qgTdF/2/这里的小小提琴

这个解决方案可能对您有用,而且更可取,但它最终取决于您是否需要做其他事情(在这种情况下,可能发布另一个问题与特定的问题)。如果您需要稍微修改一下并特别使用id,那么尝试最新版本(我认为0.2)也是值得的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21337329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档