Javascript 如何更改&x2B;到-单击父菜单时
单击菜单父菜单项时如何将+更改为-。我正在使用jquery查找target::after元素,但我找不到使用jquery将伪元素作为目标的方法 我想将下面的css更改为单击perent菜单时Javascript 如何更改&x2B;到-单击父菜单时,javascript,jquery,html,css,Javascript,Jquery,Html,Css,单击菜单父菜单项时如何将+更改为-。我正在使用jquery查找target::after元素,但我找不到使用jquery将伪元素作为目标的方法 我想将下面的css更改为单击perent菜单时 .ir-nav-w > ul li::after { /* padding-left: 10px; */ text-transform: uppercase; content: "-"; position: absolute; left: 15px; t
.ir-nav-w > ul li::after {
/* padding-left: 10px; */
text-transform: uppercase;
content: "-";
position: absolute;
left: 15px;
top: 4px;
line-height: 30px;
font-size: 20px;
z-index: 0;
}
$(“.nav-w>ul>li>a”)。单击(函数(){
$(this.next().slideToggle();
});
//打开活动列表
$('.nav-w ul li').children().has('.active menu').css('display','block');
//将url与导航url进行比较以显示活动url
$(函数(){
//var url=window.location.href;
var url=window.location.pathname;
var pgurl=window.location.href.substr(
window.location.href.lastIndexOf(“/”)+1
);
$(“.nav-w ul li a”)。每个(函数(){
if($(this.attr(“href”)==url | |$(this.attr(“href”)==“”){
$(此).addClass(“活动菜单”);
}
});
log(“url:+window.location.pathname”);
});代码>
.nav-w a{
颜色:黑色;
填充:10px 15px;
左侧填充:35px;
文字装饰:无;
显示:块;
边框底部:1px实心#f1f1;
字体大小:12px;
字号:600;
/*颜色:#178B43!重要*/
颜色:#7575;
}
/*ul内部内容区*/
.nav-w ul{
左边距:0px;
列表样式类型:无;
边缘底部:0px;
}
李国伟先生{
/*左侧填充:10px*/
文本转换:大写;
位置:相对位置;
宽度:100%;
}
/*内容区内的ol*/
.nav-w>ul{
左侧填充:0px;
右边填充:0px;
}
.nav-w ul>li ul{
左侧填充:0px;
右边填充:0px;
显示:无;
}
.活动菜单{
颜色:红色!重要;
}
.nav-w>ul li::之后{
文本转换:大写;
内容:“+”;
位置:绝对位置;
左:15px;
顶部:4px;
线高:30px;
字体大小:20px;
z指数:0;
}
.nav-w>ul li ul li::之后{
文本转换:大写;
内容:“;
位置:绝对位置;
左:0px;
顶部:5px;
线高:32px;
字体大小:20px;
z指数:0;
}
.nav-w ul li ul li a{
左侧填充:45px;
}
.nav-w a:悬停{
背景:#f5;
左边框:2px实心#178B43;
}
-
-
我的方法是在单击父菜单后将其添加到父菜单中,例如打开
然后在css中添加一个特殊的修改器:
.nav-w>ul li.open::after{
内容:“—”
}
当再次单击时,删除类open
实际上不可能在:after
之后设置目标,因为它不是DOM的一部分,不能通过JavaScript代码访问。这不是jQuery的限制
您可以在元素本身上设置一个类,并在设置类时更改:after
规则,即:
.nav-w > ul li.active::after
{
content: "-"
}
将活动类添加到锚点的父级:
$(".nav-w > ul > li a").click(function () {
$(this).next().slideToggle();
$(this).parent().toggleClass('active');
});
并在活动类上替换::after:
.nav-w > ul li.active::after {
content: '-'
}
你可以用:后道具
你可以这样做
.li-item::after{
content: "+";
}
.li-item-minus::after{
content: "-" !important;
}
在jQuery中,您可以在单击每个列表项时切换class.li item减去
jQuery(".naw-v ul li").on("click", function(){
jQuery(this).toggleClass("li-item-minus");
});
这意味着-单击此li元素,您可以切换Classli项减去与主项内容不同的
。您不能操作:after,因为从技术上讲它不是DOM的一部分,因此任何JavaScript都无法访问它。但是,您可以在指定后使用new::添加一个新类
将此添加到您的代码中:
// JS
const $listItems = $('.ir-nav-w > ul li');
$listItems.onClick(
$listItems.removeClass('closed');
this.addClass('closed')
);
// CSS
.ir-nav-w > ul li.closed::after {
content: "+";
}
诀窍是添加css:
.nav-w>ul li.选定::之后{
内容:“-”;
}
并在单击时切换选定的类:
$(“.nav-w>ul>li>a”)。单击(函数(){
$(this.parent().toggleClass(“选定”);
$(this.next().slideToggle();
});
$(“.nav-w>ul>li>a”)。单击(函数(){
$(this.parent().toggleClass(“选定”);
$(this.next().slideToggle();
});
//打开活动列表
$('.nav-w ul li').children().has('.active menu').css('display','block')代码>
.nav-w a{
颜色:黑色;
填充:10px 15px;
左侧填充:35px;
文字装饰:无;
显示:块;
边框底部:1px实心#f1f1;
字体大小:12px;
字号:600;
/*颜色:#178B43!重要*/
颜色:#7575;
}
/*ul内部内容区*/
.nav-w ul{
左边距:0px;
列表样式类型:无;
边缘底部:0px;
}
李国伟先生{
/*左侧填充:10px*/
文本转换:大写;
位置:相对位置;
宽度:100%;
}
/*内容区内的ol*/
.nav-w>ul{
左侧填充:0px;
右边填充:0px;
}
.nav-w ul>li ul{
左侧填充:0px;
右边填充:0px;
显示:无;
}
.活动菜单{
颜色:红色!重要;
}
.nav-w>ul li::之后{
文本转换:大写;
内容:“+”;
位置:绝对位置;
左:15px;
顶部:4px;
线高:30px;
字体大小:20px;
z指数:0;
}
.nav-w>ul li.选定::之后{
内容:“-”;
}
.nav-w>ul li ul li::之后{
文本转换:大写;
内容:“;
位置:绝对位置;
左:0px;
顶部:5px;
线高:32px;
字体大小:20px;
z指数:0;
}
.nav-w ul li ul li a{
左侧填充:45px;
}
.nav-w a:悬停{
背景:#f5;
左边框:2px实心#178B43;
}
-
-
psuedo内容不能随jquery更改,但您可以根据单击/滑动切换添加/删除类,并随类显示+/-。我们如何才能