如何在javascript中向动态生成的圆圈添加弹出窗口
我正在尝试为动态生成的圆创建弹出窗口(工具提示),作为RaphaelJS中创建的javascript图表的一部分,代码段如下:如何在javascript中向动态生成的圆圈添加弹出窗口,javascript,multidimensional-array,raphael,Javascript,Multidimensional Array,Raphael,我正在尝试为动态生成的圆创建弹出窗口(工具提示),作为RaphaelJS中创建的javascript图表的一部分,代码段如下: var p1, p2, bar_width; p1 = 0; p2 = 0 + 1; bar_width = c.chart_rect.width / (c.chart_data[p1][p2].length - 1) - c.series.set_gap; var qlc = [[]]; var qlp = [[]]; // Loop through s
var p1, p2, bar_width;
p1 = 0;
p2 = 0 + 1;
bar_width = c.chart_rect.width / (c.chart_data[p1][p2].length - 1) - c.series.set_gap;
var qlc = [[]];
var qlp = [[]];
// Loop through series.
for (var i = 1; i < c.chart_data[d].length; i++) {
qlc[i] = [];
qlp[i] = [];
// Loop through data points.
for (var s = 1; s < c.chart_data[d][0].length; s++) {
qlc[i][s] = paper.circle
(
c.chart_rect.x + ((p2-1) * (bar_width + c.series.set_gap)) + c.series.set_gap / 2 + ((s-1) * bar_width / (c.chart_data[d][0].length - 2)),
c.chart_rect.y + c.chart_rect.height - ((c.chart_data[d][i][s] - min) * (c.chart_rect.height / (max - min))),
3
).attr({fill: "#000000", 'stroke-width': 1});
qlp[i][s] = paper.popup(186, 215, "Hi I m a Circle...:)").attr({font: "9px sans-serif"}).hide();
qlc[i][s].mouseover(function(){
qlp[i][s].show();
}).mouseout(function(){
qlp[i][s].hide();
});
}
}
var p1、p2、条形图宽度;
p1=0;
p2=0+1;
条形图宽度=c.chart\u rect.width/(c.chart\u数据[p1][p2]。长度-1)-c.series.set\u间隙;
var qlc=[[]];
var qlp=[[]];
//循环通过系列。
对于(var i=1;i
但是,代码给了我一个uncaughttypeerror:无法读取qlp[i][s]上未定义的错误的属性'8'代码>和qlp[i][s]。隐藏代码>行
有人知道我哪里出了问题,或者我如何做到这一点吗?解决了这个问题:
var p1, p2, bar_width;
// TODO Retrieve parameters.
p1 = 0;
p2 = 0 + 1;
bar_width = c.chart_rect.width / (c.chart_data[p1][p2].length - 1) - c.series.set_gap;
// Loop through series.
for (var i = 1; i < c.chart_data[d].length; i++) {
// Loop through data points.
for (var s = 1; s < c.chart_data[d][0].length; s++) {
paper.circle
(
c.chart_rect.x + ((p2-1) * (bar_width + c.series.set_gap)) + c.series.set_gap / 2 + ((s-1) * bar_width / (c.chart_data[d][0].length - 2)),
c.chart_rect.y + c.chart_rect.height - ((c.chart_data[d][i][s] - min) * (c.chart_rect.height / (max - min))),
3
).attr({fill: "#000000", 'stroke-width': 1})
.data("x", c.chart_rect.x + ((p2-1) * (bar_width + c.series.set_gap)) + c.series.set_gap / 2 + ((s-1) * bar_width / (c.chart_data[d][0].length - 2)))
.data("y", c.chart_rect.y + c.chart_rect.height - ((c.chart_data[d][i][s] - min) * (c.chart_rect.height / (max - min))))
.data("t", c.chart_data[d][0][s])
.hover(function () {
// Show
this.flag = paper.popup(this.data("x"), this.data("y")-5, this.data("t") || "No data found.").insertBefore(this);
},
function () {
// Hide
this.flag.animate({opacity: 0}, 300, function () {this.remove();});
});
}
}
var p1、p2、条形图宽度;
//TODO检索参数。
p1=0;
p2=0+1;
条形图宽度=c.chart\u rect.width/(c.chart\u数据[p1][p2]。长度-1)-c.series.set\u间隙;
//循环通过系列。
对于(var i=1;i