所以我使用块中的d3在我的页面中动态创建了几个SVGRectElements。接下来我使用jQuery来获取我们用他们的名字创建的对象,现在我有一个我正在使用的元素数组。然后我为这些矩形创建了侦听器,当我在d3中使用mouseover和mouseout将它们悬停在它们上面时,它们会变成不同的颜色。然后我创建一个单击侦听器,将矩形的对象基于该函数。该功能如下所示:
function clickBar(bar){
var barnum = getBarNum(bar);
output(barnum);
}
function getBarNum(bar){
var bars = $("rect");
output(bar.id+" "+bars[0].id);
for(i=0; i<=bars.length-1; i++)
{
output (bars[i] + " "+bar+" "+i);
if(bars[i].id==bar.id)
return i;
}
return -1;
}
通过输出我看到实际上每次都在比较SVGRectElements,除了从不返回索引。我每次都知道它的索引不同,所以我之前遇到的异步问题无法解释这种比较中的失败。我知道==通常是原始的,但.equals也没有导致任何不同。我如何进行这种比较,以便弄清楚我刚刚点击了哪个索引?