我正在尝试学习d3js库。通过单击面对捕获表的TD元素的问题。我通常用这种方式
window.addEventListener("load", function(){
document.getElementById("table_id").addEventListener("click",function(e){
var elem = e.target || e.srcElement;
if(elem.nodeName != "TD") return;
...
}
...
所以我需要在d3js中做类似的事情。但是我不知道如何替换.target和.srcElement方法。我有什么
d3.select(#table_id).on('click',function(){
var elem = ???
在this
我的桌子上。在d3.event
这样的信息中click clientX=327, clientY=129
。该d
未定义
请帮我在var中获取TD元素。
D3js非常灵活,您无需d3.event.target
每次都使用。
如您所问,您的代码中缺少一些细节:
1. 选择
有两个选择功能d3
:
d3.select()
它获取或找到特定的tag
orelement
或class
or tag id
,例如:
d3.select('div')
返回第一个div或d3.select('.active')
find标签具有名为active的类。在您的情况下,应d3.select('#table_id')
在选择功能中使用错过的单引号。
下一个d3选择函数的d3.selectAll()
作用类似于,d3.select()
但区别在于此函数选择所有参数,例如:
d3.selectAll('p')
返回所有p
标记或所有Id或类作为参数获取。
2. 此与d之间的区别
this
是用于选择要尝试选择的特定标签或对其执行某些操作的参数,并且在selectAll
功能上更有用,因为您不知道选择了哪个标签。
d
是一个对象或DOM
包含所有属性和事件。
因此,我更改了您的代码,希望它可以帮助您d3
更好地学习。
d3.select("#table_id").on("click",function(){
var elem=d3.select(this);
if(elem.attr("name")!=="TD")
return;
});
更多信息在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句