作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我在 D3 中单击鼠标时,我试图返回矩形的“类”和“子任务”属性的值。
var projectRectangles = rectangles.append("rect")
.attr("id", function(d) { return (d)[7]; })
.attr("class", function(d) { return (d)[3]; })
.attr("subtasks", function(d) { return (d)[4]; })
.on("click", function() {expandTasks(this.id, this.class, this.subtask); });
function expandTasks(task_id, task_subtasks, task_class) { alert(task_id + '/' + task_subtasks + '/' + task_class);};
最佳答案
您必须在单击监听器中获取类和子任务属性,如下面的代码所示。
d3.select(this).attr("class");
d3.select(this).attr("subtasks");
this.className
获取类属性。但由于
subtasks
是自定义属性,您必须使用 d3
attr
来获取它方法或 html
getAttribute
方法。
The parameter d gives the data object binded to the corresponding element.
.on("click", function(d) {
expandTasks(d[7],d[3],d[4]);
});
.on("click", function(d) {
var id = d3.select(this).attr("id"); // or this.id
var className = d3.select(this).attr("class");// or this.className
var subtasks = d3.select(this).attr("subtasks"); // or this.getAttribute("subtasks");
expandTasks(id,className,subtasks);
});
关于d3.js - 如何将 SVG 元素的属性传递给 D3 中的新事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33275882/
我是一名优秀的程序员,十分优秀!