我在 d3 中写了一个图表,当鼠标触摸它时会更新(使用鼠标悬停),数据会更新,但是如果鼠标仍在栏上,鼠标悬停将不断更新图表。
所以我在看 jQuery mouseenter。有没有可能在 d3 中实现 mouseenter?
我在 d3 中写了一个图表,当鼠标触摸它时会更新(使用鼠标悬停),数据会更新,但是如果鼠标仍在栏上,鼠标悬停将不断更新图表。
所以我在看 jQuery mouseenter。有没有可能在 d3 中实现 mouseenter?
通过 d3 添加 mouseenter 事件。
d3.select(".class").on("mouseenter", function(){ // do stuff })
我认为“mouseover”和“mouseenter”之间的区别在于“mouseover”为元素本身及其所有子元素触发,而“mouseenter”只为元素本身触发。
Mouseover:当指针移到附加元素或子元素上时触发。将指针移动到其他子元素将触发一个新事件。https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/mouseover?redirectlocale=en-US&redirectslug=Mozilla_event_reference%2Fmouseover
Mouseenter:当指针移到附加元素上时触发。子元素不会触发事件。https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/mouseenter?redirectlocale=en-US&redirectslug=Mozilla_event_reference%2Fmouseenter
所以如果你想要你自己的“mouseenter”,你可以做一个检查,比如if (this === d3.event.target)
,然后是 a d3.event.stopPropagation()
,这样你就只会得到分配给监听器的元素。希望这可以帮助。