javascript - Uncaught TypeError : n. apply is not a function - 可能是什么问题?

标签 javascript d3.js

尝试访问 d3 树布局中节点的父节点我的代码如下所示

这个函数应该显示它接受作为参数的父名称

function draw(a){
  console.log(a);

  }

这里是在节点的鼠标悬停事件中调用它的函数,见最后一行

node.append("circle")
    .attr("class", function (d) {
        var value; 
        if(d.depth == 1){value = "marker";}
        else{value = "else";}
        return value;}
    )
    .attr("r", function(d){return d.depth == 1?d.children.length:3})
    .style("fill", function (d) {
        return d.depth>1?colors(d.parent.name):colors(d.name);})
    .style("stroke", "none")
   .on("mouseover", "draw(function(d){return d.parent.name;})");

但是我得到了上面的错误。有没有人要?

最佳答案

您的"mouseover" 处理程序似乎有问题。您传递的是一个字符串而不是一个函数,它只在 onmouseover DOM 元素属性中起作用(即使在那里,它也是混淆行为的不良做法)。试试看

on("mouseover", function (d) {
    draw(d.parent.name);
});

关于javascript - Uncaught TypeError : n. apply is not a function - 可能是什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33592861/

相关文章:

javascript - 如何实现Node.js的图片服务

javascript - 如何在 d3.js 中适应我的 svg 矩形框中的文本?

csv - 如何使用 dc.js 创建饼图

javascript - 如何淡入特定的 CSS 属性

javascript - 无法滚动查看旧输入

javascript - 将键添加到已存在的 javascript 数组中的所有值

javascript - 投影 y 值时的 D3.js 问题

javascript - 去除 iFrame 的 html 标签样式

javascript - 动态加载 Sublime HTML5 视频播放器

javascript - D3 如何计算此图表上显示的日期值?