Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google图表表删除所选内容_Javascript_Html_Css_Google Visualization - Fatal编程技术网

Javascript Google图表表删除所选内容

Javascript Google图表表删除所选内容,javascript,html,css,google-visualization,Javascript,Html,Css,Google Visualization,我目前正在使用谷歌图表表。我对选择有问题。我想关闭选择,但这似乎是不可能的。我甚至尝试过(一种非常丑陋的方式),比如在select部分使用事件监听器来删除它 这是测试源代码。请注意,我不能在JSFIDLE中使用此选项 <script type="text/javascript" src="https://www.google.com/jsapi" ></script> <script type="text/javascript"> google.load("j

我目前正在使用谷歌图表表。我对选择有问题。我想关闭选择,但这似乎是不可能的。我甚至尝试过(一种非常丑陋的方式),比如在select部分使用事件监听器来删除它

这是测试源代码。请注意,我不能在JSFIDLE中使用此选项

<script type="text/javascript" src="https://www.google.com/jsapi" ></script>
<script type="text/javascript">
google.load("jquery", "1");

google.load('visualization', '1', {packages:['table']});

     function drawVisualization()
     {
          var data = google.visualization.arrayToDataTable([
          ['', 'Name', 'E-mail', 'Activated', 'Last login'],
          ['<input type="checkbox">', 'name1', 'name1@company.xxx', true, '20-07-2012'],
          ['<input type="checkbox">', 'name2', 'name2@company.xxx', true, '21-07-2012']

               ]);

               var options = {};
               options['showRowNumber'] = false;
               options['page'] = 'enable';
               options['allowHtml'] = true;
               options['pageSize'] = 18;
               options['pagingButtonsConfiguration'] = 'auto';

               var visualization = new google.visualization.Table(document.getElementById('table'));
               visualization.draw(data, options);
          }

          google.setOnLoadCallback(drawVisualization);

</script>
<div id="table"></div>

load(“jquery”,“1”);
load('visualization','1',{packages:['table']});
函数drawVisualization()
{
var data=google.visualization.arrayToDataTable([
['','姓名','电子邮件','已激活','上次登录'],
[''‘名称1','name1@company.xxx,对,'20-07-2012'],
[''‘名称2','name2@company.xxx“,对,'21-07-2012']
]);
var选项={};
选项['showRowNumber']=false;
选项['page']='enable';
选项['allowtml']=true;
选项['pageSize']=18;
选项['pagingButtonsConfiguration']='auto';
var visualization=new google.visualization.Table(document.getElementById('Table');
可视化。绘制(数据、选项);
}
setOnLoadCallback(drawVisualization);
问题是,如果我使用这些复选框,(蓝色)选择是不确定和混乱的


谢谢。

实现您想要的效果的一种方法是告诉API在选择行时应该应用什么类,允许您保持指定行的
背景色

JS:

options['cssClassNames'] = {}
options['cssClassNames']['selectedTableRow'] = 'selected';
.selected { background-color: white; }
CSS:

options['cssClassNames'] = {}
options['cssClassNames']['selectedTableRow'] = 'selected';
.selected { background-color: white; }

您可以看到它正在工作。

另一个选项是在触发“选择”事件时重置选择:

google.visualization.events.addListener(visualization, 'select', selectHandler);

function selectHandler() {  
    visualization.setSelection([])
}
下面是一个例子:


这会立即删除所选内容,而无需重新绘制。

虽然这可能不是一个理想的解决方案(而不是难看的解决方案),但它只是为您提供了一种覆盖Google默认样式的方法。难道没有一种方法可以避免而不是覆盖吗?根据文档,这是我能看到的唯一方法
getSelection()
不会返回创建此功能所需的正确数据。您与
clearChart()
的关系有多密切?谢谢,这似乎是最好的方法。谷歌真可耻,它不能被禁用而不是覆盖!当用户想要在图表中多次单击时,此操作将修复此问题