Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击菜单项重定向到未定义_Javascript_Jquery_Html_Css_Padding - Fatal编程技术网

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

Javascript 单击菜单项重定向到未定义,javascript,jquery,html,css,padding,Javascript,Jquery,Html,Css,Padding,您可以在a元素中添加填充,而不是在li中添加填充。稍微调整一下,它看起来是一样的,但是a将覆盖整个li是一个内联元素。所以它不会覆盖整个李。为此,请使用以下CSS: $(document).ready(function () { $('li.dropdown').hover(function () { $(this).addClass("open"); }); $('li.dropdown').mouseleave(function () {

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

是一个内联元素。所以它不会覆盖整个李。为此,请使用以下CSS:

    $(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");
        };
    });
});
并确保您没有在下拉菜单li上应用任何填充,请在下拉菜单li a上应用


关于这个未定义的重定向,有一个javascript在背后工作。将其发布到此处以便我可以看到。

您可以尝试将操作直接绑定到包含
a
li
,而不是父
li
。此外,不必检查类是否已打开,因为它总是会有它(您在鼠标悬停和绑定鼠标单击时添加它)。请尝试以下代码:

.dropdown-menu li {
    position: relative;
}

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

嗯,点击安利不应该做任何事情。是否有您没有显示的JavaScript?您将它们发送到哪个URL?@epascarello,因此我需要添加一些脚本来启用单击li标记?在上面的代码中,单击li不应重定向窗口。我是说:代码中有什么东西在做这件事吗?听起来好像有什么东西在听event.target,并拔出href。@epascarello,“代码中有什么东西在执行它吗?”-好吧,我有
href
用于此显示:block;我已经写了,请确保你没有在下拉菜单里添加任何填充,如果你读了,请在下拉菜单里添加。我认为OP明确说明了以下内容:
不要删除填充。
@ITroubs没有注意到这一点。更新了答案。那就行了!但是如果你是准确的,并且OP问题中的“不要删除填充”是强制性的,那么答案实际上应该是否定的;-)是的,当然是你的权利。我只是认为输入可能有价值。根据现有的代码,我认为这是最简单的解决方案
.dropdown-menu li {
    position: relative;
}

.dropdown-menu li > a {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
$('ul.dropdown-menu li').on("click", function(e) {
  window.location = $(this).find("a").prop("href");
});