元素上的元素都被Javascript单击

元素上的元素都被Javascript单击,javascript,jquery,html,Javascript,Jquery,Html,我有一个div,它嵌套了多个元素。如果我按下div,按钮显示在同一个div中。但是,如果我按下按钮,按钮也会消失(这是因为div上有一个toggleClass) 我试过回去,但效果不太好。请参见下面的JSFIDLE $(文档)。在('click',“[data link=level1]”上,函数(){ console.log(“li clicked”); $(this.find(“.knoppenbalk”).toggleClass(“displaynone”); }); $(文档)。在('

我有一个div,它嵌套了多个元素。如果我按下div,按钮显示在同一个div中。但是,如果我按下按钮,按钮也会消失(这是因为div上有一个toggleClass)

我试过回去,但效果不太好。请参见下面的JSFIDLE

$(文档)。在('click',“[data link=level1]”上,函数(){
console.log(“li clicked”);
$(this.find(“.knoppenbalk”).toggleClass(“displaynone”);
});
$(文档)。在('单击',“[data link=solo]”上,函数(){
日志(“单击单独按钮”);
});

一级
辅导的
独奏

您可以使用以下命令停止向父元素传播事件:

event.stopPropagation();

您需要接受
事件
作为内联函数的参数。

您可以使用以下命令停止向父元素传播事件:

event.stopPropagation();
$(document).on('click',"[data-link=solo]", function(e){
    e.stopImmediatePropagation();
    console.log("solo BUTTON clicked");
})
您需要接受
事件
作为内联函数的参数

$(document).on('click',"[data-link=solo]", function(e){
    e.stopImmediatePropagation();
    console.log("solo BUTTON clicked");
})
)


)

您应该停止事件的传播(调用冒泡)。你可以搜索大量关于它的文章


这只适用于子元素,以避免父元素的单击传播。

您应该停止事件的传播(调用冒泡)。你可以搜索大量关于它的文章


这仅适用于子元素,以避免父元素的单击传播。

可以给出解释;)解释一下就可以了;)编辑:不工作。。。有没有可能框架7是这里的错误?我会用正确的标签问另一个问题对不起,我不知道为什么不起作用。这是正确的方法。也许你的框架会引起冲突。没问题。如果我也加载jQuery,您的解决方案就可以完美地工作。我用适当的标签问了另一个问题(framework7而不是jQuery),所以我将您的答案标记为解决方案。谢谢编辑:不工作。。。有没有可能框架7是这里的错误?我会用正确的标签问另一个问题对不起,我不知道为什么不起作用。这是正确的方法。也许你的框架会引起冲突。没问题。如果我也加载jQuery,您的解决方案就可以完美地工作。我用适当的标签问了另一个问题(framework7而不是jQuery),所以我将您的答案标记为解决方案。谢谢