Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 在单击列表项时切换div的可见性_Javascript_Jquery_Css_Jquery Selectors - Fatal编程技术网

Javascript 在单击列表项时切换div的可见性

Javascript 在单击列表项时切换div的可见性,javascript,jquery,css,jquery-selectors,Javascript,Jquery,Css,Jquery Selectors,我有一个包含标签的列表项导航。其中一个列表项有一个子菜单,应在父列表项的悬停或单击时显示该子菜单。如何使用jquery切换此选项?悬停 首先,在css中,您需要隐藏子菜单,如下所示 css js .hoverfirst参数,[second parameter]第一个参数将鼠标移入,第二个参数将鼠标移出,这是可选的。对于这两个参数,我们都创建了匿名函数 点击 像这样使用toggleClass js css 注 您需要将类放在ul上,或将ul用class包装在div中,然后在jquery中用该类设置

我有一个包含标签的列表项导航。其中一个列表项有一个子菜单,应在父列表项的悬停或单击时显示该子菜单。如何使用jquery切换此选项?

悬停

首先,在css中,您需要隐藏子菜单,如下所示

css

js

.hoverfirst参数,[second parameter]第一个参数将鼠标移入,第二个参数将鼠标移出,这是可选的。对于这两个参数,我们都创建了匿名函数

点击

像这样使用toggleClass

js

css


您需要将类放在ul上,或将ul用class包装在div中,然后在jquery中用该类设置target,否则它将应用于网页上的所有ul li。

这应该可以让您继续使用。其他人给了您一种使用hover的方法,请单击。这是一把小提琴:

看看小提琴中的html

使用css隐藏第二级菜单项:

.layer2 {
    display: none;
}
最后添加一个jQuery click事件处理程序,该处理程序首先检查是否存在.layer2,然后切换是否存在:

$(".layer1 li").click(function() {
    var num = $(this).find("ul.layer2").length;
    if (num > 0) {
        jQuery(this).children("ul.layer2").slideToggle();
    }
});
仅供参考:如果你在问题中加入一些你已经做过的事情,你可能会得到更好的答案。

工作示例:

下面的代码提供了问题中指定的同一个a标记上的、和事件

JavaScript:

$dm = $('.dropdown-menu');
$('.dropdown').hover(
  function () {
    $dm.show();
  }, function () {
    $dm.hide();
}).click(function () {
    $dm.toggle();
});
$dm.hover(
  function () {
    $dm.show();
  }, function () {
    $dm.hide();
});

向我们展示迄今为止您使用jquerySuper尝试切换的内容。谢谢这正是我要找的。我还更新了click的代码,请查看。谢谢
.showSubmenu{
    display:block;
}
.layer2 {
    display: none;
}
$(".layer1 li").click(function() {
    var num = $(this).find("ul.layer2").length;
    if (num > 0) {
        jQuery(this).children("ul.layer2").slideToggle();
    }
});
$dm = $('.dropdown-menu');
$('.dropdown').hover(
  function () {
    $dm.show();
  }, function () {
    $dm.hide();
}).click(function () {
    $dm.toggle();
});
$dm.hover(
  function () {
    $dm.show();
  }, function () {
    $dm.hide();
});