如何将SVG元素的属性传递给D3中的新事件?

海王星

当我在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);};

样本响应:1 / undefined / undefined

它返回this.id很好,但是this.classthis.subtasks总是返回“ undefined”。“类”和“子任务”在的属性中看起来不错,那么为什么它对id有效,但对其他无效?

最终,当然,我想知道将这些属性传递给另一个函数的最佳方法。

谢谢,基思

吉尔莎

您必须在点击监听器中获取以下代码所示的class和subtasks属性。

d3.select(this).attr("class");
d3.select(this).attr("subtasks");

您也可以this.className用来获取class属性。但是由于subtasks是自定义属性,因此您必须使用d3attr方法或htmlgetAttribute方法来获取它

要将属性从单击侦听器传递到其他一些功能,请尝试下面显示的任何方法。

参数d给出绑定到相应元素的数据对象。

.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); 
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将变量传递给d3中的事件侦听器方法

来自分类Dev

如何将变量传递给d3中的事件侦听器方法

来自分类Dev

如何将点击事件分配给d3js中的每个svg元素

来自分类Dev

如何将必需的属性传递给元素构造函数

来自分类Dev

将元素属性传递给JQuery事件

来自分类Dev

C# - 如何将数组中的元素传递给类中的属性

来自分类Dev

如何将CSV文件中的链接添加到D3生成的SVG元素?

来自分类Dev

如何将额外的属性传递给 reactjs 中的子元素?

来自分类Dev

如何将参数传递给流星中的模板事件?

来自分类Dev

如何将事件传递给LitElement中的孩子

来自分类Dev

如何将参数传递给reactjs中的事件句柄

来自分类Dev

当我使用D3将鼠标悬停在第二个SVG的元素上时,如何更改SVG中的元素的属性

来自分类Dev

如何将模板传递给属性中的指令?

来自分类Dev

如果两个元素嵌套,如何将onclick事件传递给最深层的元素?

来自分类Dev

如何将元素传递给函数

来自分类Dev

D3 / SVG。如何将子级svg元素放置在其父级的范围之外?

来自分类Dev

如何将ControllerContext传递给属性

来自分类Dev

如何将属性传递给childcomponent?

来自分类Dev

如何将属性传递给 ListHDFS

来自分类Dev

如何将文本添加到 d3 中的 svg 圆圈

来自分类Dev

如何将绑定数据传递到d3中的函数?

来自分类Dev

如何将属性传递给导入的隐藏自定义聚合物元素

来自分类Dev

如何将MailgunTransport中创建的Mailgun ID传递给Laravel中的事件侦听器?

来自分类Dev

如何将按钮单击事件传递给Android 中PagedList 中的Activity?

来自分类Dev

将对象属性传递给 D3 'enter()'

来自分类Dev

如何将preventDefault调用传递给其他事件?

来自分类Dev

如何将参数传递给事件处理程序?

来自分类Dev

如何将变量从函数外部传递给Firebase事件

来自分类Dev

如何将jQuery滑块的值传递给onclick事件?

Related 相关文章

  1. 1

    如何将变量传递给d3中的事件侦听器方法

  2. 2

    如何将变量传递给d3中的事件侦听器方法

  3. 3

    如何将点击事件分配给d3js中的每个svg元素

  4. 4

    如何将必需的属性传递给元素构造函数

  5. 5

    将元素属性传递给JQuery事件

  6. 6

    C# - 如何将数组中的元素传递给类中的属性

  7. 7

    如何将CSV文件中的链接添加到D3生成的SVG元素?

  8. 8

    如何将额外的属性传递给 reactjs 中的子元素?

  9. 9

    如何将参数传递给流星中的模板事件?

  10. 10

    如何将事件传递给LitElement中的孩子

  11. 11

    如何将参数传递给reactjs中的事件句柄

  12. 12

    当我使用D3将鼠标悬停在第二个SVG的元素上时,如何更改SVG中的元素的属性

  13. 13

    如何将模板传递给属性中的指令?

  14. 14

    如果两个元素嵌套,如何将onclick事件传递给最深层的元素?

  15. 15

    如何将元素传递给函数

  16. 16

    D3 / SVG。如何将子级svg元素放置在其父级的范围之外?

  17. 17

    如何将ControllerContext传递给属性

  18. 18

    如何将属性传递给childcomponent?

  19. 19

    如何将属性传递给 ListHDFS

  20. 20

    如何将文本添加到 d3 中的 svg 圆圈

  21. 21

    如何将绑定数据传递到d3中的函数?

  22. 22

    如何将属性传递给导入的隐藏自定义聚合物元素

  23. 23

    如何将MailgunTransport中创建的Mailgun ID传递给Laravel中的事件侦听器?

  24. 24

    如何将按钮单击事件传递给Android 中PagedList 中的Activity?

  25. 25

    将对象属性传递给 D3 'enter()'

  26. 26

    如何将preventDefault调用传递给其他事件?

  27. 27

    如何将参数传递给事件处理程序?

  28. 28

    如何将变量从函数外部传递给Firebase事件

  29. 29

    如何将jQuery滑块的值传递给onclick事件?

热门标签

归档