Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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 单击下拉导航菜单(第2部分)_Javascript_Jquery_Html_Css_Drop Down Menu - Fatal编程技术网

Javascript 单击下拉导航菜单(第2部分)

Javascript 单击下拉导航菜单(第2部分),javascript,jquery,html,css,drop-down-menu,Javascript,Jquery,Html,Css,Drop Down Menu,我在这篇文章中做了一个主题 我已经解释了这个话题的所有内容 我环顾了stackoverflow,试图找到这方面的想法,我确实做到了 我已经使用了我找到的一些代码和JavaScript HTML: JS: JavaScript确实可以工作,但当您使用名为排序列表菜单下拉列表的相同id复制它们时,当您单击名为“4”的第一个文本时,它将显示名为排序列表的菜单,但这就是它出错的地方。当你复制它时,当你点击第一个菜单文本“4”时,它会显示出来,但当你点击第二个菜单时,第一个菜单不会隐藏 如果有人知道如何实

我在这篇文章中做了一个主题

我已经解释了这个话题的所有内容

我环顾了stackoverflow,试图找到这方面的想法,我确实做到了

我已经使用了我找到的一些代码和JavaScript

HTML:

JS:

JavaScript确实可以工作,但当您使用名为
排序列表菜单下拉列表的相同id复制它们时,当您单击名为“4”的第一个文本时,它将显示名为
排序列表的菜单,但这就是它出错的地方。当你复制它时,当你点击第一个菜单文本“4”时,它会显示出来,但当你点击第二个菜单时,第一个菜单不会隐藏

如果有人知道如何实现这一点,这将对我有所帮助。

尝试添加
$(“ul.sort list”).hide()这将隐藏与ul.sort-list匹配的所有元素,但您的下一行将切换单击的元素并显示它

$("ul.list-menu > li.sort-menu").click(function () {
   $("ul.sort-list").hide();
   $(this).find("ul").toggle();
});

首先,您需要将
.sort menu
更改为
.default sort menu
,因为它是正确的类名

其次,当单击列表项以显示子菜单属于该
ul.sort list
时,您可以从其他
ul.sort list
隐藏其他子菜单

$("ul.list-menu > li.default-sort-menu").click(function () {
    $("ul.sort-list").hide();
   $(this).find("ul").toggle();
});

这可能是复制/粘贴代码的副产品,但请确保您正在关闭div。但您可能实际上并不需要该div

正如Felix指出的,您需要默认排序菜单,而不是。排序菜单

最后,切换类应该可以很好地完成您想要做的事情


这项工作,但当你点击菜单外,并点击页面,它会隐藏它,当你点击离开。Nvm我明白了。谢谢你的帮助。
$("ul.list-menu > li.sort-menu").click(function () {
   $(this).find("ul").toggle();
});
$("ul.list-menu > li.sort-menu").click(function () {
   $("ul.sort-list").hide();
   $(this).find("ul").toggle();
});
$("ul.list-menu > li.default-sort-menu").click(function () {
    $("ul.sort-list").hide();
   $(this).find("ul").toggle();
});
$('ul.list-menu > li.default-sort-menu').click(function () {
   $(this).find('ul').toggleClass('sort-list');
});