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");
});