【发布时间】:2014-01-21 03:34:30
【问题描述】:
我正在制作一个带有一些下拉菜单的列列表,我需要 Jquery 的下拉菜单才能使其工作。
我为此找到了一些 Jquery,但问题是当您有两个带有 ul 和 li 的菜单时,就像这样。 HTML:
<ul class="list-menu">
<li class="sort-menu">4</li>
<div class="sort-list-dropdown">
<ul class="sort-list">
<li>4</li>
</ul>
</div>
</ul>
当你复制这两次,然后当你点击类上的 4 时,sort-menu,它会放置两个菜单容器,那个类是 sort-list-dropdown 我一直在玩我从某个地方得到的 JS我对这个问题感到困惑。
JavaScript:
$("ul.list-menu > li").click(function () {
var X = $(this).attr('id');
if (X == 1) {
$("ul.sort-list > li").hide();
$(this).attr('id', '0');
} else {
$("ul.sort-list > li").show();
$(this).attr('id', '1');
}
});
//Mouse click on sub menu
$("ul.sort-list > li").mouseup(function () {
return false;
});
//Mouse click on my account link
$("ul.list-menu > li").mouseup(function () {
return false;
});
//Document Click
$(document).mouseup(function () {
$("ul.sort-list > li").hide();
$("ul.list-menu > li").attr('id', '');
});
我得到了一些变量,但我不认为这是代码。我想我需要输入一个新变量,但我不知道它需要什么。
如果有人知道如何做到这一点,请回复我。
【问题讨论】:
-
那么,唯一的问题是你的两个菜单是同时打开和关闭的?
-
您的目标是同一个班级。因此,如果您要创建两个具有相同类名的元素,那么 jQuery 将会同时看到它们。你需要定位 $(this).parent('ul');
-
我在 JS 中看到您正在寻找属性“id”-但在您的 html 中没有任何元素有任何 id...如果问题如我上面的尼克所描述的那样-我建议查看 jQuery 最接近和子方法 - api.jquery.com/closest 和 api.jquery.com/children
-
他将 ID 用作 toggle 的一种形式。注意他的 if/else 语句。
-
li标签内只能有ul标签。拥有.sort-list-dropdowndiv 是无效的 HTML
标签: javascript jquery html css drop-down-menu