鼠标悬停事件不会触发以触发 D3 中的单击事件
mouseover event is not fired up to click event fire in d3
我是 d3 的新手,我在树形图上工作,在那个鼠标悬停事件没有被触发点击事件触发。如果在某个节点上触发 click 事件,则鼠标悬停仅适用于这些子节点。
代码是 :
var nodeEnter = node.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; })
.attr('pointer-events', 'all')
.on("mouseover", overNode)
.on("mouseout", outNode)
.on("mouseUp",mouseUp)
.on("click", click);
function click(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
update(d);
}
这是你的小提琴: https://jsfiddle.net/thatoneguy/xdpzrxx1/2/
这是有效的。我添加了以下内容进行测试:
.on("mouseover", function(d){ console.log(d); overNode(d)})
.on("mouseout", function(d){ console.log(d); outNode(d)})
.on("mouseUp", function(d){ console.log(d); mouseUp(d)})
.on("click", function(d){ console.log(d); click(d)});
我还将您的 DragDropManager 对象移动到 JavaScript 的顶部,就像在它没有被发现之前一样。这是由于它是全局的,并且在创建依赖于它的其他元素之后实例化。
相关文章:
- 如何使用2个事件单击1个日历
- 在 javascript 事件单击后清空输入
- 在元素 SVG 中使用 JavaScript 或 jQuery 进行事件单击
- fullCalendar动态事件单击行为
- 错误:'这'对象不正确;在JQuery中单击事件-单击时的意外行为
- 如何启用事件单击仅在指定的小时范围内
- 完整日历事件单击未触发
- 打开选择之前的事件.(单击工作速度不够快)
- 在 JavaScript 中,函数不会在事件单击时触发
- 主干分组依据集合仅在一次事件单击后呈现
- 如何禁用地图上的所有鼠标事件(单击、悬停等)
- Fullcalendar将图标添加到事件而不触发事件单击
- 在将JQuery对象添加到DOM之前,请将事件单击到JQuery对象
- 如何模拟拖动事件(单击鼠标移动按钮)
- 如果可编辑为 false,则全日历事件单击处理程序不起作用
- onclick事件单击时未添加类
- 事件单击Kml Placemark
- 事件单击时没有运行数据库
- 在事件单击函数中添加href url
- 创建元素和事件(单击)