div
如果鼠标悬停在 div 或任何嵌套元素上,我想显示工具栏。但是以下使用 jQuery 1.7 的解决方案仅在鼠标div
直接悬停时才有效,只有在我将 a 添加padding
到item
css 类时才有可能。
<head>
<script type="text/javascript" src="jquery-1.7.min.js"></script>
<style type="text/css">
.toolbar { display: none; }
.item { padding: 1px; } /* doesn't work without padding! */
</style>
<title>Demo</title>
</head>
<body>
<div class="section">
<div class="item">
<p class="toolbar">TOOLS</p>
<p>content</p>
</div>
<div class="item">
<p class="toolbar">TOOLS</p>
<p>content</p>
</div>
</div>
<script type="text/javascript">
$(".section").on(
"mouseenter",
".item",
function(event) {
$(event.target).children('.toolbar')
.show(100);
}
)
$(".section").on(
"mouseleave",
".item",
function(event) {
$(event.target).children('.toolbar').hide();
}
)
</script>
</body>
1px 的填充不会那么糟糕,但它会导致顶部和底部的填充更大,并且此解决方法无法正常工作 - 尤其是当鼠标从左侧或右侧进入时。
如何在没有填充技巧的情况下处理事件mouseenter
?mouseleave