relatedTarget或Closest()不适用于mouseleave

时间:2014-06-13 10:11:50

标签: javascript jquery asp.net

我正在处理一个代码,当鼠标悬停在另一个div上时需要打开div。由于布局,我不能将前div嵌入另一个。为了确保子菜单div保持打开状态,我将hover分为mouseenter和mouseleave,就像在this question的答案中一样。

但是,relatedTarget或nearest()似乎不起作用。我在mouseleave中尝试了另一种功能,它不需要其中任何一种功能,而且效果很好。

我的jQuery:

$(function () {
    $('#actn').css('display', 'none');
    $('#men1').mouseenter(function () {
        $('#men1').addClass("opendiv");
        $('#actn').show('slow');
        return false;
    });
    $("#men1 div").mouseleave(function (event) {
        var toElem = $(event.relatedTarget);
        if (toElem.closest("#actn")) return;
        $("#actn").hide('slow');
        $("#men1").removeClass("opendiv");
    });
    $("#actn").mouseleave(function (event) {
        var toElem = $(event.relatedTarget);
        if (toElem.closest("#actn")) return; // Check if entering submenu
        if (toElem.closest("#men1")) return; // Check if entering main menu
        $("#actn").hide('slow');
        $("#men1").removeClass("opendiv");
    });

});

我的aspx代码:

    <!--div positioned at the top with menu-->
<div id="top">
<div id="men1">
<input type="button" class="btn" value="Action"/>
</div>
<div id="men2" >
<input type="button" class="btn" value="Advanced Search" />
</div>
<asp:Label ID="lbl" runat="server" Visible="false" />

</div><!--top ends-->

<div id="actn">
<asp:Button ID="Button1" runat="server" Text="Accept Invoices" CssClass="actnbut" OnClick="appbtn_Click" />
<asp:Button ID="Button2" runat="server" Text="Reject Invoices" CssClass="actnbut" OnClick="rejbtn_Click" />
<asp:Button ID="Button3" runat="server" Text="Print Invoices" CssClass="actnbut" OnClick="prntbtn_Click" />

</div>

我在Internet Explorer 8中查看最终结果。 任何帮助将不胜感激。 谢谢。

0 个答案:

没有答案