2012-04-20 2 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

어떤 친구가 실제로 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

한 가지 단점은 한 번의 클릭으로 응답 속도가 느려지는 것입니다 (잠재적인 두 번째 클릭을 기다리는 250ms). 어떻게 향상 시킬지 모르지만 Windows와 같은 UI 시스템에는 해결책이있는 것 같습니다. 한 번의 클릭으로 지연이 없습니다. – 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); 
관련 문제