マウスが div またはdiv
ネストされた要素の上にある場合、ツールバーを表示したいと思います。ただし、jQuery 1.7 を使用した次のソリューションは、マウスが直接上にある場合にのみ機能します。これは、css クラスdiv
に a を追加した場合にのみ可能です。padding
item
<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
イベントを処理するにはどうすればよいですか?