在javascript / jquery中访问以前绘制的绘图

时间:2016-08-26 13:18:20

标签: javascript jquery

我画了一个这样的情节:

var items = $.get("./moonlight_sonata_diameter.data", function(data) {

    items = data.split(/\r?\n/).map( pair => pair.split(/\s+/).map(Number) );

    $(function () {

    plot = $.plot($("#placeholder"),
                  [ { data: linePoints} ], {
                        series: {
                            lines: { show: true }
                        },
                        crosshair: { mode: "x" },
                        grid: { hoverable: true, autoHighlight: false },
                        yaxis: { min: 0, max: 5 }

                    });
      });
  });

现在在稍后的时刻,我想更新情节的十字准线。但是,因为它嵌入了很多函数,所以我不知道如何访问它,因为我不熟悉jQuery。

在脚本中,我可以运行:

plot.setCrosshair({x: 100})

但是,在另一个脚本中,在另一个时间,没有名为plot的对象。还有办法访问它吗?

1 个答案:

答案 0 :(得分:1)

实际上你已经把你的情节创作代码放在了文档就绪功能和你的     plot.setCrosshair({x:100})在绘图创建代码之前执行。所以一个简单的settimeout就可以解决这个问题。

只需替换

 plot.setCrosshair({x: 4})

 setTimeout(function(){  plot.setCrosshair({x: 41})}, 3000);

这将正常工作。如果你在加载完整的dom之后调用你的setCrosshair函数,那么你将不需要setTimeout函数。我希望这会有所帮助,如果没有,请告诉我。 请在http://plnkr.co/edit/3cMHmzWEIk6c39mblb0Z?p=preview

处查看