显示 div 并隐藏其他 - d3.js
show div and hide other ones - d3.js
我在 d3.js 中制作了条形图。当我单击其中一个价格变动时,div 会出现在链接到该特定价格变动的条形图下方。因此,有 24 个报价和 24 个匹配的 div 包含有关这些报价的信息。
这工作正常,但现在我希望所有其他 div 在我打开一个新的时关闭。
这是我目前的代码。我需要再次按下勾号才能关闭它。
Bar Chart
d3.selectAll(".tick")
.on("click",clickme)
function clickme(d){
var info = document.getElementById(""+d+ "");
if (info.style.display === "none") {
info.style.display = "block";
} else {
info.style.display = "none";
}
}
这就是我的 div 的样子
<div style = "display:none" id="Coal CCS retrofit" class = "hidden"> 1 </div>
<div style = "display:none" id="Coal CCS new built" class = "hidden"> 2 </div>
我试着合并这个 jQuery:
$(document).ready(function () {
var $answers = $('.hidden');
$(".member").click(function () {
var $ans = $(this).next(".hidden").stop(true).slideToggle(100);
$answers.not($ans).filter('.block').stop(true).slideUp();
})
});
与以下 CSS:
.hidden {
display:none;
}
当我使用Jquery时,会弹出div,紧随其后的是'slides up'。我认为这是因为滴答声没有 class 'member',但我无法让它工作。
更好的解决方案可能是让您的信息 div 共享一个公共 class(例如下面的工具提示),然后隐藏所有信息,然后再显示 div被点击。示例代码:
<div id="Coal CCS new built" class = "tooltip"> 1 </div>
<div id="Coal CCS new built" class = "tooltip"> 2 </div>
d3.selectAll(".tick")
.on("click",clickme)
function clickme(d){
// Select element that should be shown
const element = d3.select("#"+d.id); // Or however you're deriving id
// Determine whether the element needs to be shown or hidden
const show = element.style('display') === 'none';
// Hide any tooltip that may be shown
d3.selectAll('.tooltip').style('display', 'none');
// Show element, if appropriate
if (show) element.style('display', 'block');
}
我在 d3.js 中制作了条形图。当我单击其中一个价格变动时,div 会出现在链接到该特定价格变动的条形图下方。因此,有 24 个报价和 24 个匹配的 div 包含有关这些报价的信息。
这工作正常,但现在我希望所有其他 div 在我打开一个新的时关闭。
这是我目前的代码。我需要再次按下勾号才能关闭它。 Bar Chart
d3.selectAll(".tick")
.on("click",clickme)
function clickme(d){
var info = document.getElementById(""+d+ "");
if (info.style.display === "none") {
info.style.display = "block";
} else {
info.style.display = "none";
}
}
这就是我的 div 的样子
<div style = "display:none" id="Coal CCS retrofit" class = "hidden"> 1 </div>
<div style = "display:none" id="Coal CCS new built" class = "hidden"> 2 </div>
我试着合并这个 jQuery:
$(document).ready(function () {
var $answers = $('.hidden');
$(".member").click(function () {
var $ans = $(this).next(".hidden").stop(true).slideToggle(100);
$answers.not($ans).filter('.block').stop(true).slideUp();
})
});
与以下 CSS:
.hidden {
display:none;
}
当我使用Jquery时,会弹出div,紧随其后的是'slides up'。我认为这是因为滴答声没有 class 'member',但我无法让它工作。
更好的解决方案可能是让您的信息 div 共享一个公共 class(例如下面的工具提示),然后隐藏所有信息,然后再显示 div被点击。示例代码:
<div id="Coal CCS new built" class = "tooltip"> 1 </div>
<div id="Coal CCS new built" class = "tooltip"> 2 </div>
d3.selectAll(".tick")
.on("click",clickme)
function clickme(d){
// Select element that should be shown
const element = d3.select("#"+d.id); // Or however you're deriving id
// Determine whether the element needs to be shown or hidden
const show = element.style('display') === 'none';
// Hide any tooltip that may be shown
d3.selectAll('.tooltip').style('display', 'none');
// Show element, if appropriate
if (show) element.style('display', 'block');
}