访问javascript/jquery中以前绘制的绘图
我画了一个这样的图:访问javascript/jquery中以前绘制的绘图,javascript,jquery,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:
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的对象。还有什么方法可以访问它吗 实际上,您已经将绘图创建代码放入了document ready函数和 setCrosshair({x:100})在打印创建代码之前执行。因此,一个简单的设置超时就可以了 替换
plot.setCrosshair({x: 4})
与
这很好用。如果在加载完整的dom后调用setCrosshair函数,则不需要setTimeout函数。我希望这会有所帮助,如果没有,请让我知道。
请在处检查它。您是否可以为此创建JSFIDLE,这将很容易解决您的问题。我看到绘图是窗口的一部分,但在index.html:window.plot.setCrosshair({x:500})中它仍然没有这样做。请参见:
setTimeout(function(){ plot.setCrosshair({x: 41})}, 3000);