如何访问Raphael中任何元素的id属性

我正在使用Raphael在网站上绘制一些元素。 元素包括矩形,线(路径)。 我给了path元素一个id,并尝试在该行的onclick事件中访问它。 但是当我对id进行警报时,看不到任何东西。 以下是代码段

function createLine() { var t = paper.path("M" + xLink + " " + yLink +"L" + linkWidth + " " + linkHeight); t.attr('stroke-width','3'); t.attr('id','Hello'); t.node.onclick = processPathOnClick; } function processPathOnClick() { alert($(this).attr("id")); } 

任何人都可以告诉我上面的代码有什么问题。 任何指针都会有所帮助。

谢谢

你确定你不想写$(t.node).attr('id','Hello'); 代替?

更新 :有人刚刚回答了这个问题。 我真的觉得有必要指出这种设置id并不是特别好的方式。 你最好使用:

 t.node.id = 'Hello'; 

我希望有一种方法可以赞扬胡安门德斯,除了赞成他对这个答案的评论。

试试这个:

 function createLine() { var t = paper.path("M" + xLink + " " + yLink +"L" + linkWidth + " " + linkHeight); t.attr('stroke-width','3'); t.id = 'Hello'; t.node.onclick = processPathOnClick; } function processPathOnClick() { alert($(this).id); alert(this.id); // This should work too... } 

基本上你在Raphael线实例变量“t”上创建一个名为“id”的新属性。 在我看来,这是一种黑客行为,但它确实很好。

尝试使用jquery设置处理程序

 function createLine() { var t = paper.path("M" + xLink + " " + yLink +"L" + linkWidth + " " + linkHeight); t.attr('stroke-width','3'); t.attr('id','Hello'); $(t.node).click(processPathOnClick); } function processPathOnClick() { alert($(this).attr("id")); }