我寫了一個D3小部件,後面根據D3站點上的sunburst示例 - http://bl.ocks.org/kerryrodden/7090426。D3 Mouseenter vs Mouseover
小部件很好,我甚至將它提交給一個開源項目(其他幾個人查看並測試過它)。但是現在,當我嘗試用不同的計算機(相同的瀏覽器版本)查看相同的窗口小部件時,我遇到與mouseover和mouseenter不一致的行爲。當我將鼠標懸停在項目上時,只有第一個項目懸停在不透明度集合上,當我將鼠標移動到小部件中時,不更新不透明度。
這裏是破碎的版本: http://jsfiddle.net/wrdrvr/f5tvsv5v/
var path = svg.datum(data).selectAll("path")
.data(partition.nodes)
.enter().append("path")
.attr("display", function(d) { return d.depth ? null : "none"; }) // hide inner ring
.attr("d", arc)
.attr('id',function(d) {
return d.name+"-"+d.value;
})
.style("stroke", "#fff")
.style("fill", function(d) {
if (d.depth > 0) {
return color(d.name);
}
}) .each(stash)
.on("mouseover", mouseover)
//.on("mouseenter",mouseover)
.on("mouseleave", mouseleave)
我能得到通過,包括了mouseenter,因爲它本來是一道努力,但是我以前不使用它,它並沒有在使用這個例子,我不知道爲什麼我需要在這裏。有人可以幫助澄清這一點?
也許下面可以幫助你:http://stackoverflow.com/questions/7286532/jquery -mouseenter-vs-mouseover。雖然MouseEnter不會冒泡,但MouseOver可以。因此,如果在具有'hover'-Event的元素中有'hover'事件的元素,第二個元素也會觸發,但是對於MouseEnter,只有第一個元素會觸發,並且此元素中的元素不會再觸發。 JSFiddle:http://jsfiddle.net/ZCWvJ/7/這是你正在爲什麼或者我應該再次讀你的問題? –