朋友们,我有点想不通,所以决定请你们.
我有以下HTML结构(或多或少):
<li>
<a>
<div></div>
<div></div>
<div></div>
</a>
</li>divs被设置为内联块,锚被设置为阻止列表元素有一个css悬停类和一个活动/单击模式类。悬停样式正在运行于li.hover:悬停,但单击的类不适合我,因为单击事件触发的是子处理程序(Div),而不是列表。
所以我的问题是,我怎样才能把父母设置为可点击的元素而不是孩子。如果您能够解释一下为什么它与悬停事件不同(为什么会触发父事件的悬停事件处理程序,而不是子事件处理程序,比如单击),那将是非常可怕的,因为我想完全了解css和事件是如何工作的。
编辑-
我有一个jquery事件处理程序。
$(".mylist").click(function(e){
$(this).addClass('selected');
});问题是,这并不像我点击时那样启动,因为div似乎是“重叠的”父。也不希望使用z索引..。(但我不知道是否该走了)谢谢
发布于 2013-12-09 19:57:31
当您单击您的div时,单击事件会通过a向li冒泡。因此,如果您将侦听器添加到li,而不是div,那么一切都应该正常工作。
当然,如果div的单击处理程序调用event.stopPropagation,那么li的处理程序就不能工作。与a元素上的单击处理程序相同。
https://stackoverflow.com/questions/20479244
复制相似问题