Javascript 矩形上的Raphael JS单击重定向到url将获取所有矩形的最后一个url

Javascript 矩形上的Raphael JS单击重定向到url将获取所有矩形的最后一个url,javascript,jquery,onclick,raphael,rectangles,Javascript,Jquery,Onclick,Raphael,Rectangles,我试图遍历列表并创建矩形框,每个用户的点击都应该被重定向到特定页面,尽管我很难理解点击处理程序。请帮助我完善下面的代码,以便它重定向到相应的url,而不是最后一个。(我认为这是我对JS本身缺乏了解。) var items=[{'url':'http://google.com'},{'url':'http://stackoverflow.com'}]; var bh=120; var-bw=120; var br=8; var start_x=100; var start_y=80; r=Raph

我试图遍历列表并创建矩形框,每个用户的点击都应该被重定向到特定页面,尽管我很难理解点击处理程序。请帮助我完善下面的代码,以便它重定向到相应的url,而不是最后一个。(我认为这是我对JS本身缺乏了解。)

var items=[{'url':'http://google.com'},{'url':'http://stackoverflow.com'}];
var bh=120;
var-bw=120;
var br=8;
var start_x=100;
var start_y=80;
r=Raphael(“持有者”,840780)
对于(变量i=0;i

上面的代码是我正在处理的版本,它在SVG上呈现多个矩形,我遇到的问题是单击矩形,它只返回最后一个


谢谢。

问题是有一个变量名为
i
,循环结束后,它的值是
items.length
。您需要记住每个节点的正确值。试试这个:

   for (var i = 0; i < items.length; i++){
      ...
      var rect = r.rect(start_x, start_y, bh, bw, br);
      rect.node.setAttribute('data-index', i);
      group.push(rect);
      ...
      rect.node.onclick = function(event) {
         alert(items[event.target.getAttribute('data-index')].url);
      };
   }
for(变量i=0;i
   for (var i = 0; i < items.length; i++){
      ...
      var rect = r.rect(start_x, start_y, bh, bw, br);
      rect.node.setAttribute('data-index', i);
      group.push(rect);
      ...
      rect.node.onclick = function(event) {
         alert(items[event.target.getAttribute('data-index')].url);
      };
   }