AmCharts.ready 在异步加载时尚未就绪
AmCharts.ready is not ready when loaded asynchronously
最初我把所有的AmChart配置都放在AmCharts.ready中,一切正常。
<script src="amcharts/amcharts.js" type="text/javascript"></script>
<script src="amcharts/serial.js" type="text/javascript"></script>
<script>
AmCharts.ready(function() {
console.log("this works");
/* Other configs */
})
</script>
不知何故,当我按照 amCharts 中的说明引入 RequireJS 以满足 requireJS 时,它停止工作。AmChart.ready回调中的任何代码都不会被执行。(奇怪的是它在调试期间执行了一次(
经过几次测试,我意识到 AmChart.ready 只将回调推送到onReadyArray
中,该回调稍后在 window.load/onload 事件后弹出以执行。换句话说,如果在window.onload事件之后加载AmChart,AmChart.ready是无用的。我的解决方法如下:
<script>
configChart = function() {
/* Create charts stuff */
};
if (AmCharts.isReady) {
configChart();
} else {
AmCharts.ready(configChart);
}
</script>
在较新版本(目前为 3.14.1 版(中仍然不起作用,但修复它的方法是手动调用 handleLoad
方法:
AmCharts.handleLoad();
多次调用它似乎也不会造成任何伤害。
因为我是异步加载图表的,所以我需要在调用我的 AmCharts 函数之前手动设置 "AmCharts.isReady = true;"。例如:
var chartData1 = [];
function generateChartData() {
...
}
function createStockChart() {
...
}
if ($('.amChartDivExists').length > 0) {
AmCharts.isReady = true;
generateChartData();
createStockChart();
}
相关文章:
- Ajax请求文档就绪会导致jquery加载缓慢
- 文档就绪提供了错误的选择器高度
- 当组件准备就绪时,如何在Polymer中动态注册新属性
- IIFE jquery已准备就绪
- 函数未在页面就绪时运行
- 函数不't在jquery文档就绪时执行
- php:打印javascript/jquery dom就绪
- 准备就绪时的随机背景
- Javascript/Css导航未显示在jquery文档上,仅在ie中准备就绪
- SVG使用Javascript将文件上载到DOM就绪元素
- 如何编写单个 Jquery 函数以在文档更改和就绪事件时触发
- 在页面上加载高级jQuery版本准备就绪
- Whic 规范定义就绪事件
- 修改 DOM 后如何确保 DOM 再次准备就绪
- ajax - 请求对象就绪状态不变
- 就绪函数上的指令只能执行一次
- 如何在文档就绪 .fileupload 中分配值
- 事件侦听器更新就绪在加载时未显示确认,而更新实际存在
- 可以't将属性src设置为null,即使DOM已准备就绪
- 当文档准备就绪时,将数据从一个文本框复制到另一个