我尝试了一些 jQuery,我想弄清楚如何让滑动菜单工作。我在<ul>
. <a>
我单击的所有 '都会显示一个子菜单。子菜单<ul>
有指定给他们的类“子菜单”。
我在完成这项工作方面已经取得了很大进展。现在我要确保的是,当单击子菜单项时,它们的行为与正常情况一样。现在,preventDefault 可以防止这种情况发生。整洁的功能,但我想为子菜单禁用它<a>
。
我有以下代码:
$(document).ready(function () {
$('.dropdown > li').click(function () {
var $el = $('ul', this); // element to toggle
$('.dropdown > li > ul').not($el).slideUp();
$(this).find('.sub-menu ').slideToggle();
});
$('.dropdown > li').children().children().click(function (e) {
return false;
});
$(".dropdown > li > a").click(function (e) {
e.preventDefault();
});
});
我添加了 preventDefault 以避免主菜单上的正常例程,并且我禁用了子菜单的 slideToggle 操作。
现在我想为 submenu 添加默认行为<a>
。他们目前什么都不做。
编辑:我发现了 JQuery 的“不”位,我正试图让它发挥作用(因为我还没有一个令人满意的答案)。我想要的是从滑动子菜单的功能中排除所有属于“子菜单”类的。我想出的语法是:
$('.dropdown > li').not('ul.sub-menu > li > a').click(function() {
}
但它不起作用。当我单击其中的一个时,它仍然执行该功能。那么我将如何改写上面的代码以使上面的函数始终执行,除非在 a 内时?