ノードのリストがあり、ラファエル オブジェクトを使用して各ノードを描画します。次のループがあります。
for(var i=0; i<curNodes.length; i++){
var node = curNodes[i];
var obj = paper.rect(node.getX(), node.getY(), node.width, node.getHeight())
.attr({fill:nodes[i].getColor(), "fill-opacity": 0.6})
.click(function(e){ onMouseClicked(i,e); });
}
クリックすると、curNodes 配列の 'i' 番目の要素に関連付けられたデータを表示できる関数を呼び出したいと思います。ただし、常に最後の「i」がこの関数に渡されます。私の機能は次のとおりです。
var onMouseClicked = function(i, event){
switch (event.which) {
case 1:
this.attr({title: curNodes[i].name});
break;
}
}
関数を呼び出すときに正しいインデックスにアクセスするにはどうすればよいですか?