Я хочу отобразить панель инструментов, если мышь находится над div или любым из вложенных элементов div
.Но следующее решение с jQuery 1.7 работает, только если мышь находится над div
напрямую, что возможно, только если я добавлю 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>
Заполнение в 1 пиксель не будет таким плохим, но оно приведет к большему заполнению сверху и снизу, и этот обходной путь не будет работать должным образом - особенно если мышь входит слева или справабоковая сторона.
Как я могу обрабатывать события mouseenter
и mouseleave
без уловки заполнения?