使用Highcharts 3.0.7& Turbolinks,我在渲染我的图表时遇到了零星的问题。
我有几十页的图表,仅在某些页面上,我收到了丢失的div(错误13)消息。
首先,我假设这是因为页面是按this SO question异步加载的。我想我错了。
使用以下JS(在erb部分内):
<script>
var ready;
ready = function() {
if($("#header_chart").length == 1) {
console.log('Visible')
lineChart("header_chart", '<%= raw @chart_series %>', "<%= @range %>", "Title");
}
};
$(document).ready(ready);
$(document).on('page:load', ready);
</script>
我认为放弃if语句会有所帮助,至少是暂时的。但是,我可以看到turbolinks似乎多次渲染部分(或至少是脚本)。即使我点击另一个不应该加载它的链接..
我已经尝试了我能想到的一切:
如果我刷新页面,我会在控制台中看到一次可见。如果我点击链接,我会看到它记录了几次。
如果我点击其他页面上的链接,它没有显示 - 虽然显然是div,但div不在页面上。
尝试删除页面:加载turbolinks部分但没有成功。唯一的相似之处在于我有两个不同的页面,图表呈现为具有相同名称的div。
尝试更改div名称,但没有成功。
将js移动到单独的文件中,或者移出部分文件。
请有人帮我解决这个问题。 我甚至没有成功改变功能的名称。