我画了一个这样的情节:
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的对象。还有办法访问它吗?
答案 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
处查看