如何在 AmCharts-StockChart 中创建点击事件
How to create a Click event in AmChart-StockChart
假设有一个使用 AmCharts 的 Stockchart,如下所示:
https://codepen.io/Volabos/pen/yZwdqg
HTML 代码部分如下所示:
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script src="https://www.amcharts.com/lib/3/amstock.js"></script>
<div id="chartdiv"></div>
<button type="button">Click Me!</button>
在页面的左下角,有一个Button
。现在我想要一个功能,当用户单击此按钮时,Zoom=MAX 将被选中(如果尚未选中。)
有什么方法可以实现这个功能吗?
感谢指点
您可以使用 periodSelector.selectPeriodButton()
实现此目的。遗憾的是,该功能没有记录 (docs). I forked your code pen and extended it with a function at the end (updated code pen)。
document.getElementById('clickme').onclick = event => {
const period = chart.periodSelector.periods.find(b => b.period === 'MAX');
// if you know the index:
// const button = chart.periodSelector.periods[3];
chart.periodSelector.selectPeriodButton(period);
};
编辑:
根据 xorspark 的回答,这可能不是最好的方法。也许您想改用它。
官方支持的方法是将 periodSelector 的 periods
数组中的 selected
属性 设置为 true(同时将其他设置为 false)并调用setDefaultPeriod
之后模拟点击
document.getElementById('clickme').onclick = event => {
chart.periodSelector.periods.forEach((period) => {
if (period.period === "MAX") {
period.selected = true;
}
else {
period.selected = false;
}
});
chart.periodSelector.setDefaultPeriod();
};
假设有一个使用 AmCharts 的 Stockchart,如下所示:
https://codepen.io/Volabos/pen/yZwdqg
HTML 代码部分如下所示:
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script src="https://www.amcharts.com/lib/3/amstock.js"></script>
<div id="chartdiv"></div>
<button type="button">Click Me!</button>
在页面的左下角,有一个Button
。现在我想要一个功能,当用户单击此按钮时,Zoom=MAX 将被选中(如果尚未选中。)
有什么方法可以实现这个功能吗?
感谢指点
您可以使用 periodSelector.selectPeriodButton()
实现此目的。遗憾的是,该功能没有记录 (docs). I forked your code pen and extended it with a function at the end (updated code pen)。
document.getElementById('clickme').onclick = event => {
const period = chart.periodSelector.periods.find(b => b.period === 'MAX');
// if you know the index:
// const button = chart.periodSelector.periods[3];
chart.periodSelector.selectPeriodButton(period);
};
编辑:
根据 xorspark 的回答,这可能不是最好的方法。也许您想改用它。
官方支持的方法是将 periodSelector 的 periods
数组中的 selected
属性 设置为 true(同时将其他设置为 false)并调用setDefaultPeriod
之后模拟点击
document.getElementById('clickme').onclick = event => {
chart.periodSelector.periods.forEach((period) => {
if (period.period === "MAX") {
period.selected = true;
}
else {
period.selected = false;
}
});
chart.periodSelector.setDefaultPeriod();
};