2014-06-25 41 views
0

我有一個包含10個谷歌圖表的頁面。我有一個設計用於切換圖表類型的按鈕,但按照當前編寫的方式,它一次只能更改一個圖表。如果我爲每個不同的圖表構建,我會重複一大堆代碼。用多個圖表切換谷歌圖表類型頁

我想什麼做的是寫這將更改圖表的類型,任何個人的div而不是目前的1

這裏更一般的功能是fiddle所有的代碼,因爲它是目前實施。

var redrawCombo = function(){ 
    var data = google.visualization.arrayToDataTable([ 
    ['Year', 'Sales', 'Expenses'], 
    ['2004', 1000,  400], 
    ['2005', 1170,  460], 
    ['2006', 660,  1120], 
    ['2007', 1030,  540] 
    ]); 

var options = { 
    title: 'Company Performance', 
    hAxis: {title: 'Year', titleTextStyle: {color: 'red'}, 
    'height': 250, 
    animation: { 
    duration: 750, 
    easing: 'out', 
    }, 
} 
}; 
var chart = new google.visualization.ComboChart(document.getElementById('chart_div1')); 
chart.draw(data, options); 
} 
// Click Handlers 
$('#combo-chart').click(function(e){ 
    redrawCombo(); 
    return false; 
}); 
$('#bar-chart').click(function(e){ 
    drawChart1(); 
    return false; 
}); 
+0

這樣的?? ?? http://jsfiddle.net/robertrozas/j7nR7/ – Hackerman

+0

我想要的是點擊處理程序找出它在哪個div,然後將其傳遞到一個函數,該函數使用所選內容重繪地圖。這樣,我可以點擊任何圖形,並使用一種功能而不是爲每種功能構建一個功能。 – mschrepel

回答

0

你可以寫一個單一的事件處理程序,重視選擇匹配的所有元素(也許是一類用於圖表的div將是很好的嗎?),並使用事件屬性來獲取點擊的容器:

$('.myCharts').click(function (e) { 
    // e.target is the clicked on element 
    // container id is e.target.id 
});