Jquery 如何将下拉菜单从悬停更改为onclick
需要将菜单下拉列表从悬停更改为onclick: 我已经附加了css和html代码 我还附上了工作小提琴Jquery 如何将下拉菜单从悬停更改为onclick,jquery,html,css,Jquery,Html,Css,需要将菜单下拉列表从悬停更改为onclick: 我已经附加了css和html代码 我还附上了工作小提琴 #导航容器{ 利润率:41px00px; 填充:0; 背景#424445; /*边框:1px实心#7398ba*/ 文本对齐:居中; 宽度:100%; } #纳瓦尔{ 保证金:0; 填充:0; 列表样式:无; } #纳武利{ 位置:相对位置; } #纳瓦尔里桥{ 显示:块; } #Navul li a{ 文字装饰:无; 颜色:白色; 显示:块; 填充:8px; } #导航距离:悬停{ /*
#导航容器{
利润率: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;
}
我添加了两个!重要的
语句,因为您需要这些语句来覆盖任何其他设置。可能需要添加!重要信息
,但不一定需要。