我有一个谷歌组织结构图,这是我的 source code in JSFIDDLE我有这个功能
if(collapsed == 0)
{
$(function(){
$(".plus").hide();
});
}
我有一个名为 plus 的类,它有一个为每个节点显示的图片,但我想如果一个节点没有子项,我希望该类(加上图像)只为没有子项的项隐藏。在我的例子中,它隐藏了所有节点,我不需要它。
在我的例子中,Carol
没有 child ,他不需要有与 Alice
相同的加号图像
谢谢
最佳答案
您正在使用类选择器隐藏元素,它将隐藏此类存在的所有元素,您应该使用其他选择器来标识该节点
如果您需要隐藏节点,那么您将不得不更新数据本身,这里是您可以实现的方法。
更新 fiddle :http://jsfiddle.net/w8Ytq/102/
var runOnce = google.visualization.events.addListener(chart, 'ready', function() {
// set up + sign event handlers
var previous;
$('#chart_div').on('click', 'div.plus', function () {
var selection = chart.getSelection();
var row;
if (selection.length == 0) {
row = previous;
}
else {
row = selection[0].row;
previous = row;
}
var collapsed = chart.getCollapsedNodes();
var collapse = (collapsed.indexOf(row) == -1);
chart.collapse(row, collapse);
chart.setSelection();
// get a new list of collapsed nodes
collapsed = chart.getCollapsedNodes();
// set up event listener to recollapse nodes after redraw
var runOnce2 = google.visualization.events.addListener(chart, 'ready', function() {
google.visualization.events.removeListener(runOnce2);
for (var i = 0; i < collapsed.length; i++) {
chart.collapse(collapsed[i], true);
}
});
var children =chart.getChildrenIndexes(row);
for(var i=0;i< children.length;i++)
{
var childrenOfChildren = chart.getChildrenIndexes(children[i]);
if(childrenOfChildren == "")
{
var col1 = data.getValue(children[i],0);
var col2 = data.getValue(children[i],1);
var col3 = data.getValue(children[i],2);
data.removeRow(children[i]);
data.insertRows(children[i], [[col1, col2, col3]]);
}
}
// redraw the chart to account for the change in the sign
chart.draw(data, options);
});
关于javascript - 如何隐藏谷歌组织结构图中所选元素的 HTML 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38186336/