点击孩子时没有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
我不确定您是否可以在单击attachment
项时阻止事件触发,但您当然可以对其进行过滤
$('.outerElement').click(function() { if ($(this).hasClass('attachment')) { return; } // Handle event });
只需设置onclick="event.stopPropagation();"
对孩子们会这样做。