【发布时间】:2015-02-28 01:16:09
【问题描述】:
我有一个包含文本的框,当用户用鼠标进入该框时,我会播放一个音调(使用 mouseover 事件)。这是使用 Rect 和 Text 元素完成的,它们是兄弟元素,都是 svg 元素的子元素(我使用的是 d3)。鼠标悬停事件附加到 Rect。
问题是当鼠标进入Rect时,会按预期播放音调,但是当他们将鼠标悬停在Rect内部的Text上,然后退出Text并回到Rect时,Rect中的mouseover事件是再次调用。我想完全忽略输入文本的鼠标,以便仅触发一次 Rect 事件,直到鼠标实际离开矩形并再次重新输入时才再次触发。这是一些代码:
svg.append("rect")
.attr('width', boxSize)
.attr('height', boxSize)
.attr('x', x - boxSize / 2)
.attr('y', y - boxSize / 2)
.on("mouseover", function() {
var freq = GetFrequency(innerRowNum, innerRowIndex);
var oscillator = startOscillator(freq, true);
});
svg.append("text")
.attr("x", x)
.attr("y", y)
.attr("dy", ".35em")
.attr("text-anchor", "middle")
.style("font", "300 " + (boxSize * 0.6) + font)
.style("fill", "white")
.style("pointer-events", "none")
.text("Text");
【问题讨论】:
标签: javascript html d3.js