如何检测谷歌图表上的双击事件(饼图)
问题描述:
如何检测谷歌图表上的双击事件?这里是我的代码: 如何检测谷歌图表上的双击事件(饼图)
var options = {
title: 'My Daily Activities'
};
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
console.log(chart);
chart.is3D = true;
chart.draw(data, options);
google.visualization.events.addListener(chart, 'click', function(e){
console.log(e);
console.log(chart.getSelection());
var data = chart.getSelection();
if(data.length > 0) {
alert(0);
chart.setSelection([]);
}
//window.open("http://classicmayank.limewebs.com", "mywindow1", "status=1,width=350,height=150");
});
}
答
jquery提供了一个可以使用的双击事件。正如你在这里看到的例子:
$("p").dblclick(function() { alert("Hello World!"); });
jQuery的页面,在这里你可以找到更多的是在这里:http://api.jquery.com/dblclick/
答
它有点晚我猜,但使用的东西沿着
google.visualization.events.addListener(chart, 'select', columnselectHandler)
var status = 0;
function columnselectHandler(e) {
var selection = chart.getSelection();
var selectedItem = selection[0];
var data2 = getDDData(k);
var columndata = []
if (selectedItem) {
if (status == 0){
var name = data.getValue(selectedItem.row, 0);
columndata[0] = data2[0]
columndata[1] = data2[selectedItem.row+1]
var chartData = new google.visualization.arrayToDataTable(columndata);
chart.draw(chartData, {width: 1200, height:500}, options);
var button = document.getElementsByClassName("backToMain")[0];
button.setAttribute("id",chartType)
button.setAttribute("style","display:inline; margin-top:150px; font-size:30px; position:absolute;")`
线
答
我知道这是一个古老的问题,但我已经尝试了一些小技巧,如何检测双击。只是通过测量它。这当然不是一个好的或强大的解决方案,但它似乎工作。
var firstClick = 0;
var secondClick = 0;
google.visualization.events.addListener(chart, 'click', function() {
var date = new Date();
var millis = date.getTime();
if (millis - secondClick > 1000) {
// add delayed check if a single click occured
setTimeout(function() {
// no second click fast enough, it is a single click
if (secondClick == 0) {
alert("click");
}
}, 250);
}
// try to measure if double-clicked
if (millis - firstClick < 250) {
firstClick = 0;
secondClick = millis;
alert("doubleClick");
} else {
firstClick = millis;
secondClick = 0;
}
});
JSFiddle to it is here。
+0
一个缺点是减慢了单击响应的响应速度(等待潜在的第二次点击250ms)。我不知道如何改进它,但像Windows这样的UI系统似乎有一个解决方案。单击就没有延迟。 – Martin 2016-01-27 14:41:18
答
我做了以下
var clicks = 0;
function selectHandler() {
clicks++;
setTimeout(function() {
if (clicks >= 2) {
alert("double click");
}
clicks = 0;
}, 250);
}
//bind the select event with chart
google.visualization.events.addListener(chart, 'select', selectHandler);
没有的家伙居然Google图表显示在iframe中,我们不能让它点击这就是为什么我问这里做什么? – 2012-04-20 12:49:28
那么,如果你只需要双击图表,你可以用它来双击iframe。也许我错了,但我看到你已经有一个事件,所以这个双击事物应该是同样的事情。 – 2012-04-20 13:14:43
Dude我从今天早上开始搜寻,对此我一无所知,我认为谷歌图表不支持dblclick事件。 – 2012-04-20 13:30:28