Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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
Jquery 如何将下拉菜单从悬停更改为onclick_Jquery_Html_Css - Fatal编程技术网

Jquery 如何将下拉菜单从悬停更改为onclick

Jquery 如何将下拉菜单从悬停更改为onclick,jquery,html,css,Jquery,Html,Css,需要将菜单下拉列表从悬停更改为onclick: 我已经附加了css和html代码 我还附上了工作小提琴 #导航容器{ 利润率:41px00px; 填充:0; 背景#424445; /*边框:1px实心#7398ba*/ 文本对齐:居中; 宽度:100%; } #纳瓦尔{ 保证金:0; 填充:0; 列表样式:无; } #纳武利{ 位置:相对位置; } #纳瓦尔里桥{ 显示:块; } #Navul li a{ 文字装饰:无; 颜色:白色; 显示:块; 填充:8px; } #导航距离:悬停{ /*

需要将菜单下拉列表从悬停更改为onclick: 我已经附加了css和html代码 我还附上了工作小提琴

#导航容器{
利润率:41px00px;
填充:0;
背景#424445;
/*边框:1px实心#7398ba*/
文本对齐:居中;
宽度:100%;
}
#纳瓦尔{
保证金:0;
填充:0;
列表样式:无;
}
#纳武利{
位置:相对位置;
}
#纳瓦尔里桥{
显示:块;
}
#Navul li a{
文字装饰:无;
颜色:白色;
显示:块;
填充:8px;
}
#导航距离:悬停{
/*背景:粉红色*/
}
#Navul li a:悬停{
背景:黑色;
}
#纳瓦尔{
位置:绝对位置;
显示:无;
}
#Navul li a集装箱{
背景:#bec8cb;
}
#navContainer ul li:悬停ul{
/*宽度:19%*/
位置:静态;
显示:块;
右:244px;
顶部:50px;
浮动:对;
}


您可以尝试将悬停
css
属性分配给
onclick
,从
  • 中给出或获取
    ,您可以尝试将悬停
    css
    属性分配给
    onclick
    ,要从
  • 中给出或获取
    类,可以使用jQuery和
    切换类
    ,添加

    $( "#navContainer ul li" ).click(function() {
      $( this ).toggleClass("open")
    });
    
    然后在下面更改
    :将
    悬停到
    。打开
    或更改“.open”到您想要的任何位置

    现在,
    onclick
    将切换类
    。打开
    ,这样它将给出相同的结果,但是
    onclick
    而不是
    onhover

    请参阅更新的

    注意

    <head>
        <script
      src="https://code.jquery.com/jquery-3.2.1.min.js"
      integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
      crossorigin="anonymous"></script>
    </head>
    
    确保在
    中添加jQuery引用

    示例

    <head>
        <script
      src="https://code.jquery.com/jquery-3.2.1.min.js"
      integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
      crossorigin="anonymous"></script>
    </head>
    

    您可以轻松地使用jQuery和
    toggleClass
    ,您将添加

    $( "#navContainer ul li" ).click(function() {
      $( this ).toggleClass("open")
    });
    
    然后在下面更改
    :将
    悬停到
    。打开
    或更改“.open”到您想要的任何位置

    现在,
    onclick
    将切换类
    。打开
    ,这样它将给出相同的结果,但是
    onclick
    而不是
    onhover

    请参阅更新的

    注意

    <head>
        <script
      src="https://code.jquery.com/jquery-3.2.1.min.js"
      integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
      crossorigin="anonymous"></script>
    </head>
    
    确保在
    中添加jQuery引用

    示例

    <head>
        <script
      src="https://code.jquery.com/jquery-3.2.1.min.js"
      integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
      crossorigin="anonymous"></script>
    </head>
    

    所以让我们把它拆开一点。首先,我假设您已经引用了jquery

    让我们首先将子列表的:hover选择器更改为它自己的选择器

    旧CSS:

    #navContainer ul li:hover ul {
            /*width: 19%;*/
            position: static;
            display: block;
            right: 244px;
            top: 50px;
            float: right;   
        }
    
    新CSS:

    .active {
            /*width: 19%;*/
            position: static !important;
            display: block !important;
            right: 244px;
            top: 50px;
            float: right;
        }
    
    我添加了两个
    !重要的
    语句,因为您需要这些语句来覆盖任何其他设置。可能需要添加
    !重要信息
    ,但不一定需要

    现在我们要创建JQuery选择器。在JS文件(或html文档中的脚本标记)中,我们需要找到元素并将事件绑定到它们。 我们可以通过使用JQuery.on函数来实现这一点

    首先,我们需要由id
    #navContainer
    标识的基本容器。然后我们可以将事件绑定为:

    $("#navContainer").on("click", "li", function(){
    
    });
    
    从那以后,我们只需单击添加或删除该类。我们可以通过使用
    toggleClass
    JQuery函数来实现这一点。编辑:我们还需要删除任何其他下拉列表中的活动组件,以防多个组件打开

    $("#navContainer").on("click", "li", function(){ 
       $(this).children("ul").toggleClass("active");
       $("#navContainer li").not(this).children("ul").removeClass("active");
    });
    
    这是因为.on绑定是指向容器中列表项中的每个无序列表的,因为我们将:hover选择器更改为活动类的:hover选择器,它只需在单击时打开和关闭该类

    希望这有帮助

    编辑:嵌入的代码段

    $(“#navContainer”)。在(“单击”、“li”,函数()上{
    $(此).children(“ul”).toggleClass(“活动”);
    $(“#navContainer li”)。不是(这个)。子类(“ul”)。removeClass(“活动”);
    });
    
    #导航容器{
    利润率:41px00px;
    填充:0;
    背景#424445;
    /*边框:1px实心#7398ba*/
    文本对齐:居中;
    宽度:100%;
    }
    #纳瓦尔{
    保证金:0;
    填充:0;
    列表样式:无;
    }
    #纳武利{
    位置:相对位置;
    }
    #纳瓦尔里桥{
    显示:块;
    }
    #Navul li a{
    文字装饰:无;
    颜色:白色;
    显示:块;
    填充:8px;
    }
    #导航距离:悬停{
    /*背景:粉红色*/
    }
    #Navul li a:悬停{
    背景:黑色;
    }
    #纳瓦尔{
    位置:绝对位置;
    显示:无;
    }
    #Navul li a集装箱{
    背景:#bec8cb;
    }
    .主动{
    /*宽度:19%*/
    位置:静态!重要;
    显示:块!重要;
    右:244px;
    顶部:50px;
    浮动:对;
    }
    
    

    所以让我们把它拆开一点。首先,我假设您已经引用了jquery

    让我们首先将子列表的:hover选择器更改为它自己的选择器

    旧CSS:

    #navContainer ul li:hover ul {
            /*width: 19%;*/
            position: static;
            display: block;
            right: 244px;
            top: 50px;
            float: right;   
        }
    
    新CSS:

    .active {
            /*width: 19%;*/
            position: static !important;
            display: block !important;
            right: 244px;
            top: 50px;
            float: right;
        }
    
    我添加了两个
    !重要的
    语句,因为您需要这些语句来覆盖任何其他设置。可能需要添加
    !重要信息
    ,但不一定需要。