Google 图表 "select" 事件触发多次
Google Charts "select" event firing multiple times
我正在使用 Google 可视化 API 中的柱形图,并设置了一个“点击”事件,以便在我点击其中一列时使用:
google.visualization.events.addListener(chart, 'select', function(event) {
if (!isWebview) {
log.logInfo("Selected Sum");
$("#reportBody").trigger("app:update", { toXYZ: true});
} else {
}
});
但是,每当我 select 图表中的一个柱时,它就会触发 4 次。这也恰好是我在图表中的行数 - 这可以连接吗?
提前致谢。
回答:
我发现了问题 - 有两个。首先,此 js 文件的 html 文件两次加载相同的 js 代码 - 一次用于 ios,一次用于 android,但在浏览器上加载两者,因此两次添加相同的事件侦听器.
此外,还使用了这两种设置 onLoad
回调的方法:
google.charts.load('visualization', '1', {
'packages': ['corechart', 'table'],
'callback': drawAll
});
和
google.setOnLoadCallback(drawAll);
如果我没记错的话,后者是一个已弃用的版本。
因此,创建事件侦听器的 drawAll
函数最终被调用了 4 次,因此我为同一事件设置了 4 个事件侦听器,它们都执行相同的代码。
我正在使用 Google 可视化 API 中的柱形图,并设置了一个“点击”事件,以便在我点击其中一列时使用:
google.visualization.events.addListener(chart, 'select', function(event) {
if (!isWebview) {
log.logInfo("Selected Sum");
$("#reportBody").trigger("app:update", { toXYZ: true});
} else {
}
});
但是,每当我 select 图表中的一个柱时,它就会触发 4 次。这也恰好是我在图表中的行数 - 这可以连接吗?
提前致谢。
回答:
我发现了问题 - 有两个。首先,此 js 文件的 html 文件两次加载相同的 js 代码 - 一次用于 ios,一次用于 android,但在浏览器上加载两者,因此两次添加相同的事件侦听器.
此外,还使用了这两种设置 onLoad
回调的方法:
google.charts.load('visualization', '1', {
'packages': ['corechart', 'table'],
'callback': drawAll
});
和
google.setOnLoadCallback(drawAll);
如果我没记错的话,后者是一个已弃用的版本。
因此,创建事件侦听器的 drawAll
函数最终被调用了 4 次,因此我为同一事件设置了 4 个事件侦听器,它们都执行相同的代码。