点击孩子时没有onclick

我有以下HTML代码:

Lorem ipsum dolar sit amet

我在“.outerElement”上有一个jQuery onclick事件但是,当我点击附件时,我不希望调用“.outerElement”onclick事件,是否有某种方法可以防止这种情况或检查哪个元素被点击?

在子元素上使用event.stopPropagation()

 $(".attachment").on("click", function(event){ event.stopPropagation(); console.log( "I was clicked, but my parent will not be." ); }); 

这可以防止事件将DOM冒泡到父节点。

event对象的一部分也是target成员 。 这将告诉您哪个元素触发了事件开始。 但是,在这种情况下, stopPropagation似乎是最佳解决方案。

 $(".outerElement").on("click", function(event){ console.log( event.target ); }); 

这没有jQuery

 
Hello

我不确定您是否可以在单击attachment项时阻止事件触发,但您当然可以对其进行过滤

 $('.outerElement').click(function() { if ($(this).hasClass('attachment')) { return; } // Handle event }); 

只需设置onclick="event.stopPropagation();" 对孩子们会这样做。