这里相对较新的编码器。我正在使用 D3 和 jquery 创建一个跳跃效果,当光标移动到一个 svg 圆圈上时触发。
圆的示例如下所示:
<circle cx="20.61855670103093" cy="730" class="top1000 Ragtime albumDot" id="0" r="5.5"></circle>
影响圆圈的 CSS 是这样的:
.albumDot {
fill: #fff;
z-index: 250;
cursor: pointer; /*-- Does not work 90% of the time --*/
stroke: #111;
stroke-width: 3px;
opacity: 1;
}
处理悬停的代码如下所示:
$('.albumDot').mouseenter(function() {
console.log("mouseover"+ this.id);
hopup(jazzdata[this.id]);
});
$(".albumDot").mouseleave( function() {
console.log("mouseout");
d3.select("#hopup").attr("style","display:none; opacity:0;");
}
悬停功能工作得很好,但是当我将鼠标移动到这些 svg 形状中的任何一个上时,mouseenter 和 mouseleave 会一遍又一遍地触发。我没有离开这个形状,只是在它里面移动。
以前,我一直在使用 mouseover 和 mouseoff,但我遇到了同样的问题。圆圈没有子元素。
这发生在 Mac 上的 Safari 和 Chrome 中。
编辑:这是 Dropbox 上的一个活生生的例子。