amcharts:如何在工具提示中添加操作
amcharts: How to add an action in tooltip
我正在尝试在 amcharts 中添加一个动作,例如:
function myfunc(name){
alert("hi "+name);
}
var tooltipDetail='<div class="detail" name="{name}" onclick="myfunc({name});">detail {name}</div>'
series1.columns.template.tooltipHTML = tooltipDetail;
当我将 'myfunc()' 替换为 'alert(1)' 时,它会启动警报,但代码中定义的 myfunc 在控制台 'Uncaught ReferenceError: myfunc is not defined' 中启动错误。为什么?我该如何解决这个问题?
我的意图是用 jquery 创建一个更详细的函数,例如:
$('.detail').click(function(){
var name=this.attr("name");
$("#selected").html(name);
});
但它不起作用,然后我简化了代码...我检查了 $('.detail').html() is not available if tooltip is not showed yet 所以我认为它是启动工具提示时构建。
我还尝试在工具提示中包含该函数,例如:
var tooltipDetail='<script>function hi({name}){alert("hi"+name);}</script><div class="detail" name="{name}" onclick="hi({name});">detail {name}</div>'
它导致同样的问题,'hi' 未定义。
有什么推荐吗?
谢谢
AmCharts 似乎有一个事件系统。尝试使用点击事件处理程序:
function myfunc(){
alert(1);
}
series.tooltip.events.on('hit', myFunc);
查看这个修改后的 CodePen,其中的工具提示是可点击的:
https://codepen.io/krassdanke/pen/ZEbyQyY (original from official amCharts docs: https://www.amcharts.com/docs/v4/tutorials/clickable-links-in-tooltips/)
@dth 很好,完整的答案是:
function myFunction(name){
alert(name);
};
series1.columns.template.events.on(
"hit",
ev => {myFunction(ev.target._dataItem.dataContext["name"]);},
this
);
我正在尝试在 amcharts 中添加一个动作,例如:
function myfunc(name){
alert("hi "+name);
}
var tooltipDetail='<div class="detail" name="{name}" onclick="myfunc({name});">detail {name}</div>'
series1.columns.template.tooltipHTML = tooltipDetail;
当我将 'myfunc()' 替换为 'alert(1)' 时,它会启动警报,但代码中定义的 myfunc 在控制台 'Uncaught ReferenceError: myfunc is not defined' 中启动错误。为什么?我该如何解决这个问题?
我的意图是用 jquery 创建一个更详细的函数,例如:
$('.detail').click(function(){
var name=this.attr("name");
$("#selected").html(name);
});
但它不起作用,然后我简化了代码...我检查了 $('.detail').html() is not available if tooltip is not showed yet 所以我认为它是启动工具提示时构建。
我还尝试在工具提示中包含该函数,例如:
var tooltipDetail='<script>function hi({name}){alert("hi"+name);}</script><div class="detail" name="{name}" onclick="hi({name});">detail {name}</div>'
它导致同样的问题,'hi' 未定义。
有什么推荐吗? 谢谢
AmCharts 似乎有一个事件系统。尝试使用点击事件处理程序:
function myfunc(){
alert(1);
}
series.tooltip.events.on('hit', myFunc);
查看这个修改后的 CodePen,其中的工具提示是可点击的: https://codepen.io/krassdanke/pen/ZEbyQyY (original from official amCharts docs: https://www.amcharts.com/docs/v4/tutorials/clickable-links-in-tooltips/)
@dth 很好,完整的答案是:
function myFunction(name){
alert(name);
};
series1.columns.template.events.on(
"hit",
ev => {myFunction(ev.target._dataItem.dataContext["name"]);},
this
);