Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中向动态生成的圆圈添加弹出窗口_Javascript_Multidimensional Array_Raphael - Fatal编程技术网

如何在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

我正在尝试为动态生成的圆创建弹出窗口(工具提示),作为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 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