2012-04-20 4 views
3

Как определить событие двойного щелчка на графиках Google? Вот мой код: Как обнаружить событие двойного щелчка на диаграмме google (круговая диаграмма)

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"); 
    }); 
    } 

ответ

-2

Jquery обеспечивает двойное событие щелчка, который можно использовать. Как вы можете видеть на примере здесь:

$("p").dblclick(function() { alert("Hello World!"); }); 

страница JQuery, где вы можете найти больше это здесь: http://api.jquery.com/dblclick/

+0

Нет чувак на самом деле Google отображение диаграмм в IFRAME и мы не можем сделать его интерактивными Вот почему я спрашиваю здесь, что делать? –

+0

Ну, если вам нужно всего лишь дважды щелкнуть диаграмму, вы можете использовать это, чтобы дважды щелкнуть по iframe. Возможно, я понял это неправильно, но я вижу, что у вас уже есть событие, поэтому эта вещь с двойным щелчком должна быть одной и той же. –

+2

Чувак, я ищу с сегодняшнего утра и ничего не получил об этом, я думаю, что событие dblclick не поддерживается в диаграммах Google. –

0

Ее немного поздно я предполагаю, но использовать что-то вдоль линий

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;")` 
3

Я знаю, что это старый вопрос, но я попробовал немного взломать, как обнаружить двойной щелчок. Просто измерив его. Это, безусловно, неплохое или надежное решение, но, похоже, оно работает.

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 на это here.

+0

Одним из недостатков является замедление ответа на один щелчок (на 250 мс, ожидающих второго щелчка). Я понятия не имею, как улучшить его, но системы пользовательского интерфейса, такие как Windows, похоже, имеют решение. Нет задержек одним щелчком мыши. – Martin

1

Я сделал следующее

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); 
Смежные вопросы