在我的Javascript应用程序中,我遇到了事件冒泡问题,即我不想在鼠标放在元素上后触发mouseleave
(已经实现了拖动行为,因此它移动并且鼠标离开它)。
我怎样才能做到这一点?
编辑
我正在使用d3.js
通过以下方式捕获事件:
d3.selectAll("circle")
.on("mouseover", function(d,i){
...
}
.on("mouseup", function(d,i){
...
}
.on("mouseleave", function(d,i){
...
}
最佳答案
拥有一个像这样的 bool 检查
变量怎么样
var preventBubble = true;
d3.selectAll("circle")
.on("mouseover", function(d,i){
...
}
.on("mouseup", function(d,i){
preventBubble = false;
....
}
.on("mouseleave", function(d,i){
if(preventBubble) {
...
}
}
我更愿意使用带有回调的.hover()
,而不是使用mouseover
和mouseleave
d3.selectAll("circle").on("hover", function(d,i){
//To Dos
}, function(d,i) {
// callback To Dos
});
关于javascript - 如何防止mouseup后触发mouseleave?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18594112/