gpt4 book ai didi

javascript - 防止触发父组(组事件冒泡)

转载 作者:行者123 更新时间:2023-11-30 12:41:26 24 4
gpt4 key购买 nike

如果您将事件处理程序添加到一个组(而不是像矩形这样的元素)并且该组还包含一个带有事件处理程序的组并且您在子组上触发事件(单击),它也会触发父事件处理程序。 Fiddle你怎么能防止 parent 被触发?如果您将处理程序添加到矩形,则事件不会冒泡。

    var svgElement=document.getElementById("mainSvgId");
var s = Snap(svgElement);
s.attr({height: 300, width: 300});

var parentGroup=s.g().attr({id: "parent"});
var rect1 = s.rect(0, 0, 200, 200).attr({fill: "#bada55"});
parentGroup.add(rect1);
parentGroup.click(function(){
console.log("id parent: " + this.node.id);
})

var childGroup=s.g().attr({id: "child"});
var rect2 = s.rect(100, 100, 30, 30).attr({fill: "#ff0055"});
childGroup.add(rect2);
parentGroup.add(childGroup);
childGroup.click(function(){
console.log("id child: " + this.node.id);
})

最佳答案

您只需更改最后 4 行即可防止事件在其父项上传播:

    childGroup.click(function(e){
e.stopPropagation()
console.log("id child: " + this.node.id);
})

updated FIDDLE

关于javascript - 防止触发父组(组事件冒泡),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24308701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com