2013-04-04 39 views
1

我在d3中編寫了一個圖形,當鼠標觸及它時(使用鼠標懸停),數據更新,但是如果鼠標仍然在欄上,鼠標懸停會連續更新圖形。Mouseenter in d3

所以我在看jQuery mouseenter。有沒有可能在d3中實現mouseenter?

+0

你應該可以使用jQuery來爲mouseenter附加一個偵聽器。 – 2013-04-04 14:22:47

+0

你有沒有看到這https://groups.google.com/forum/?fromgroups=#!topic/d3-js/8nApzax9p5E谷歌小組討論,或此示例代碼https://gist.github.com/shawnbot/4166283 ?這些幫助嗎? – 2013-04-04 15:29:59

回答

2

通過d3添加mouseenter事件。

d3.select(".class").on("mouseenter", function(){ // do stuff })

0

我認爲「mouseover」和「mouseenter」之間的區別在於,「mouseover」會觸發元素本身及其所有子元素,而「mouseenter」只會觸發元素本身。

鼠標懸停:鼠標指針移動到附加元素或子元素上時觸發。將指針移動到其他子元素將觸發新事件。 https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/mouseover?redirectlocale=en-US&redirectslug=Mozilla_event_reference%2Fmouseover

Mouseenter:當指針移到附加元素上時觸發。子元素不會觸發事件。所以如果你想要你自己的「鼠標中心」,你可以做一個像if (this === d3.event.target)這樣的檢查,然後是d3.event.stopPropagation(),所以你只能得到監聽者分配的元素。希望這可以幫助。