d3.js在元素外部单击时,隐藏该元素
d3.js when click outside the elements, hide the element
我的页面中有一些提示。有一个工具提示(div),其中包含一个输入框和一个按钮。我想在工具提示外部单击,然后隐藏工具提示。我试过这个:
d3.select("body")
.on("click",function(){
d3.select("#tooltip")
.classed("hidden",true);
});
这是有效的,但当我单击要输入某些值的输入框时,工具提示仍然会隐藏。如何仅在单击工具提示外部时才能隐藏工具提示?
我也试过:
d3.select("body").filter().on("click",function(){})
但我不知道它是如何工作的,我不能选择除工具提示(div)之外的所有元素。
这里有一个解决方案:
var tooltip = d3.select("#tooltip");
var tooltipWithContent = d3.selectAll("#tooltip, #tooltip *");
function equalToEventTarget() {
return this == d3.event.target;
}
d3.select("body").on("click",function(){
var outside = tooltipWithContent.filter(equalToEventTarget).empty();
if (outside) {
tooltip.classed("hidden", true);
}
});
JSFiddle:https://jsfiddle.net/LukaszWiktor/53yok58w/
相关文章:
- 切换一个元素并将其余元素隐藏在同一包装类下
- CSS 动画在元素隐藏时暂停
- 检查元素是否可见,父元素隐藏在DOM中
- 粘性导航元素 - 隐藏然后显示
- show() 在元素隐藏时不起作用
- 通过可见性隐藏和显示元素:隐藏/可见
- 如何从检查页面元素隐藏Blogger中的javascript代码
- 基于页面元素隐藏部分html代码
- 使用jQuery和select元素隐藏动态类
- Jquery Div元素隐藏
- 当指针在父元素上时,Boostrap工具提示会在父元素隐藏之前触发悬停事件
- 聚焦元素隐藏在固定菜单后面
- 将jQuery中的元素隐藏在表中
- 元素.隐藏变量可移植性
- 如何使一个元素隐藏在向下滚动的wordpress
- 当父元素隐藏时,如何使用jquery show()
- 高度:自动计算错误,如果元素隐藏时dom加载,然后显示
- Javascript元素隐藏不起作用
- 使元素隐藏后直接显示完成jquery
- HTML表单元素隐藏的onload javascript