gpt4 book ai didi

javascript - 防止谷歌图表中的默认排序事件

转载 作者:行者123 更新时间:2023-11-30 05:42:13 26 4
gpt4 key购买 nike

是否可以防止在 google 图表表对象中触发默认排序事件?如果我们以 code playground 中的示例为例这怎么能被调整以便例如。单击“年龄”标题时防止排序发生?

即对表格图表不做任何事情(我的想法是在所有标题中进行默认排序,除了一个标题,其中另一个点击事件(由外部 js 中的事件监听器管理将触发)将被触发但不触发排序事件(因此没有出现小排序箭头))

例如,下面的代码不起作用(它仍然调用默认的排序方法):

function drawVisualization() {
var table = new google.visualization.Table(document.getElementById('table'));
table.draw(sortData, null);

var chart = new google.visualization.BarChart(document.getElementById('chart'));
chart.draw(sortData, null);

google.visualization.events.addListener(table, 'sort',
function(event) {
if(event.column != 1){
sortData.sort([{column: event.column, desc: !event.ascending}]);
chart.draw(sortData, null);
}
}
);
}

谢谢指点

最佳答案

将表格的sort 选项设置为event。这将禁用默认排序并使图表在单击标题时抛出“排序”事件。如果您想正确跟踪排序,您需要使用 sortColumnsortAscending 选项集重新绘制图表:

var options = {
sort: 'event'
};
google.visualization.events.addListener(table, 'sort', function(event) {
if(event.column != 1) {
options.sortColumn = event.column;
options.sortAscending = event.ascending;
sortData.sort([{column: event.column, desc: !event.ascending}]);
table.draw(sortData, options);
}
});

[编辑 - 使用自定义表格排序功能的完整代码,基于 playground 代码]

function drawVisualization() {
var options = {
sort: 'event'
};
var table = new google.visualization.Table(document.getElementById('table'));
table.draw(sortData, options);

var chart = new google.visualization.BarChart(document.getElementById('chart'));
chart.draw(sortData, null);

google.visualization.events.addListener(table, 'sort', function(event) {
if(event.column != 1) {
options.sortColumn = event.column;
options.sortAscending = event.ascending;
sortData.sort([{column: event.column, desc: !event.ascending}]);
table.draw(sortData, options);
}
});
}

关于javascript - 防止谷歌图表中的默认排序事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20166551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com