amcharts:如何在工具提示中添加操作



我正试图在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未定义"中启动一个错误。为什么?我该如何解决这个问题?

我的意图是用jquery创建一个更详细的函数,比如:

$('.detail').click(function(){
var name=this.attr("name");
$("#selected").html(name);
});

但它不起作用,然后我简化了代码。。。如果工具提示还没有显示,我检查了$('.detail'(.html((不可用,所以我认为它是在工具提示启动时构建的。

此外,我尝试在工具提示中包含该功能,如:

var tooltipDetail='<script>function hi({name}){alert("hi"+name);}</script><div class="detail" name="{name}" onclick="hi({name});">detail {name}</div>'

这导致了同样的问题,"嗨"并没有定义。

有什么建议吗?感谢

AmCharts似乎有一个事件系统。尝试使用点击事件处理程序:
function myfunc(){
alert(1);
}
series.tooltip.events.on('hit', myFunc);

请参阅此修改后的CodePen,其中工具提示是可单击的:https://codepen.io/krassdanke/pen/ZEbyQyY(原件来自amCharts官方文档: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
);