单击菜单项重定向到未定义

Click on menu item redirects to undefined

<li class="dropdown navbar-li col-md-3 col-sm-3">
    <a href="<%= ESRBOrg.Core.Common.PublisherConfigurationManager.Navigation %>index.aspx" class="dropdown-toggle navPadding">PUBLISHERS</a>
    <ul class="dropdown-menu col-md-12 col-sm-12  navbar-submenus"role="menu">
        <li><a href="<%= ESRBOrg.Core.Common.PublisherConfigurationManager.Navigation %>Getting_Rated/Index.aspx">Getting a Game Rated</a></li>
        <li><a href="<%= ESRBOrg.Core.Common.PublisherConfigurationManager.Navigation %>ratings/index.aspx">Rating Certificate Updates</a></li>
        <li><a href="<%= ESRBOrg.Core.Common.PublisherConfigurationManager.Navigation %>ArcManual.aspx">Advertising &amp; Marketing <BR />Guidelines</a></li>
        <li><a href="<%= ESRBOrg.Core.Common.PublisherConfigurationManager.Navigation %>Library.aspx">Downloads</a></li>
        <li><a href="<%= ESRBOrg.Core.Common.PublisherConfigurationManager.Navigation %>ratings/enforcement.aspx">Enforcement</a></li>
        <li><a href="<%= ESRBOrg.Core.Common.PublisherConfigurationManager.Navigation %>about/contact.aspx">Contact ESRB</a></li>
        <li><a href="<%= ESRBOrg.Core.Common.PublisherConfigurationManager.Navigation %>PreClearance.aspx">ARC Pre-Clearance</a></li>
    </ul>
</li>

当我将鼠标悬停在 <a> 标签上并单击时 - 一切正常。 但是 <a> 并未涵盖所有 <li> 元素(我添加了填充)。当我点击填充区域时,我被重定向到未定义。

如何在不更改现有页面样式的情况下解决此问题(不要删除填充)?

一些难以复制的例子http://jsfiddle.net/v3ng6zqh/

我在代码中很难找到的Js脚本:

    $(document).ready(function () {
    $('li.dropdown').hover(function () {
        $(this).addClass("open");
    });

    $('li.dropdown').mouseleave(function () {
        $(this).removeClass("open");
    });

    $('li.dropdown').off("click");
    $('li.dropdown').on("click", function(e) {
        var navigate = $(this).hasClass("open");
        if (navigate) {
            window.location = $(this).find("a[data-toggle='dropdown']").prop("href");
        };
    });
});

您可以向 a 元素添加一个填充,而不是 li 内的填充。稍微调整一下,它看起来是一样的,但是 a 会覆盖整个 li.

<a> 是内联元素。所以它不会覆盖整个里。为此,请使用 CSS:

.dropdown-menu li {
    position: relative;
}

.dropdown-menu li > a {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

并确保您没有在下拉菜单 li 上应用任何填充,在下拉菜单 li a 上应用。

关于那个未定义的重定向,有一个 javascript 在它后面工作。 Post放在这里让我看看。

您可以尝试将操作绑定到直接包含 ali,而不是父级 li。此外,没有必要检查是否有 class open 因为它总是会有它(你在鼠标悬停和绑定鼠标点击时添加它)。试试这个代码:

$('ul.dropdown-menu li').on("click", function(e) {
  window.location = $(this).find("a").prop("href");
});