Javascript 如何防止在I';我在做拖拉?
我有一个地图,在每个路径中我都有一个点击事件,只有当我点击路径时才会激活,但当拖动事件结束时,它会被激活。如何使单击事件仅在单击路径时激活 这是我的代码:Javascript 如何防止在I';我在做拖拉?,javascript,d3.js,Javascript,D3.js,我有一个地图,在每个路径中我都有一个点击事件,只有当我点击路径时才会激活,但当拖动事件结束时,它会被激活。如何使单击事件仅在单击路径时激活 这是我的代码: g.selectAll(".mpio") .data(topojson.feature(co, co.objects.mpios).features) .enter().append("path") .attr("class", function(d) { ret
g.selectAll(".mpio")
.data(topojson.feature(co, co.objects.mpios).features)
.enter().append("path")
.attr("class", function(d) {
return "mpio " + "_" + d.id + " " + d.properties.dpt
})
.attr("d", path)
.on("click",function(){
alert("click")
})
})
这是我的原始代码(原始问题)
退房并进行更多控制
单击
是这两个事件的完全完成(鼠标向下,然后鼠标向上)。我认为您正在寻找鼠标向下移动。从中,如果(d3.event.defaultPrevented)返回,您可以添加将>编码到单击事件中,以防止在发生缩放时发生该事件
.on("click",function(){
if (d3.event.defaultPrevented) return;
alert("CLICKED!!")
})
,来自您的小提琴。这是一个评论,但不是答案。谢谢。。但奇怪的是,我知道它是有效的,但在我的真实示例中,当我拖动或单击时,什么都不会发生……如果你能将代码发布到不起作用的地方,那就太好了。如果我们不能正确地重现您的问题,我们就不能正确地回答您的问题。我看不出有任何理由说明这在更新的代码中不起作用。我也不知道。。。我甚至删除了所有内容并发出警报(“单击”),但没有任何效果。如果(d3.event.defaultPrevented)返回false,则始终返回truetry putif代码>
.on("click",function(){
if (d3.event.defaultPrevented) return;
alert("CLICKED!!")
})