【发布时间】:2013-08-01 15:06:13
【问题描述】:
我有一个嵌套项目列表,每个项目都有自己的编辑链接。
<ul>
<li>Coffee</li>
<li>
Fruits <a href="#" class="editLink">Edit</a>
<ul>
<li>Banana <a href="#" class="editLink">Edit</a></li>
<li>Orange <a href="#" class="editLink">Edit</a></li>
<li>
Apple <a href="#" class="editLink">Edit</a>
<ul>
<li>Fuji <a href="#" class="editLink">Edit</a></li>
<li>Red Delicious <a href="#" class="editLink">Edit</a></li>
<li>Golden <a href="#" class="editLink">Edit</a></li>
</ul>
</li>
</ul>
</li>
<li>
Drinks <a href="#" class="editLink">Edit</a>
<ul>
<li>Coke <a href="#" class="editLink">Edit</a></li>
<li>Pepsi <a href="#" class="editLink">Edit</a></li>
</ul>
</li>
<li>Something <a href="#" class="editLink">Edit</a></li>
</ul>
我只希望在将鼠标悬停在列表元素上时显示编辑链接。 目前,当我将鼠标悬停在子元素上时,父元素也会受到影响。
$('li').hover(
function(){
$(this).find('.editLink').show();
},
function(){
$(this).find('.editLink').hide();
}
);
我有以下 CSS 使编辑链接最初隐藏
.editLink{
display:none;
}
如何使只有悬停的元素显示编辑链接而不显示其他元素? 似乎隐藏部分很好,但显示部分会影响所有嵌套的父母。 以下是实际示例:http://jsfiddle.net/D7yWm/
【问题讨论】:
-
您可以使用 mouseenter 和 mouseleave 事件,并在子级中使用它们,以免将事件传播给父级。