JQueryのmouseenterイベントを使用して、別のdiv内のdivを表示しています。マウスがDIVAIに入ると、その中に小さなDIVBが表示されます。問題は、マウスをDIV Bの上に置くと、JQueryがmouseenterイベントを再度実行することです。DIV B(内側)を表示したいのですが、マウスがその上を通過したときに、mouseenterイベントを再度発生させないようにします。技術的には、私のマウスはまだDIV Aをホバリングしています。つまり、DIV B上でMouseoutを実行すると、JQueryはDIV Aでmouseenterを再度実行します。これは、私が理解していることです。
コード:
$(document).on("mouseenter", ".si", function (e) {
settingsIcon(e,1);
});
$()
$(document).on("mouseout", ".si", function (e) {
settingsIcon(e,0);
});
function settingsIcon(e, action) {
if (action === 1) // show
{
$(".settings_icon").remove();
var id = parseInt(e.target.id.replace("dvci_", ""), 10);
$("#dvc_" + id).prepend("<div class='settings_icon' ><img class='settings_icon_image' src='settings.png' style='width:59px; height:57px' /></div>");
var icon = $("#dvc_" + id + " .settings_icon");
icon.css({
"left": ($("#dvci_" + id).width() / 2) - 30,
"top": parseInt($("#dvci_" + id).css("margin-top").replace("px", ""), 10) + ($("#dvci_" + id).height() / 2) - 30
});
$(".settings_icon img").show("scale", {}, 400);
}
else {
// hide
$(".settings_icon").remove();
}
}
jsfiddle: http: //jsfiddle.net/tLUrd/