Javascript JQuery如果元素有类,则显示内容

Javascript JQuery如果元素有类,则显示内容,javascript,jquery,Javascript,Jquery,我有一个ul和li组成的下拉菜单。每次单击li,它都会获得“ui状态活动”,再次单击时,该类将被删除。当li具有该类时,我想隐藏页面的内容。这应该很容易,但我遇到了问题,我有: $("li").on("click", function(){ if( $(this).hasClass("ui-state-active") ){ console.log("Yes"); mainContent.fadeOut(); } else if ( !$(this

我有一个
ul
li
组成的下拉菜单。每次单击
li
,它都会获得
“ui状态活动”
,再次单击时,该类将被删除。当
li
具有该类时,我想隐藏页面的内容。这应该很容易,但我遇到了问题,我有:

$("li").on("click", function(){
    if( $(this).hasClass("ui-state-active") ){
        console.log("Yes");
        mainContent.fadeOut();
    } else if ( !$(this).hasClass("ui-state-active")){
        console.log("No");
        mainContent.FadeIn();
    }
})
它的结果总是肯定的。我做错了什么?

$(此)
只是单击的元素。您必须查询其他元素,因为正如您所解释的,单击的现在有这个类

但是这取决于HTML标记如何到达那里。也许您可以使用jQuery.parent():

像这样的方法应该会奏效:

$(this).parent('ul').hasClass("ui-state-active") 
$(函数(){
$(“#制表符”).tabs();
$(“li”)。在(“单击”,函数(){
$(this).parent('ul').children().each(函数(索引){
if($(this).hasClass(“ui状态活动”)){
控制台日志(“是”);
//mainContent.fadeOut();
}else if(!$(this).hasClass(“ui状态活动”)){
控制台日志(“否”);
//mainContent.FadeIn();
}
});
})
});

青蒿素、金樱子、天妇罗、金樱子a、金樱子。库拉比图尔nec arcu。我坐在阿梅特·莫里斯旁边。这是一个很好的例子。埃蒂亚姆·阿利奎特·马萨和洛雷姆。毛里斯·达比乌斯·拉库斯·奥克托·里苏斯。埃尼安临时乌兰科珀酒店 狮子座。维瓦摩斯·塞德·马格纳·奎斯·利古拉·埃利弗德·阿迪皮斯。杜伊斯·奥奇。苏打水煎饼或同侧生命。阿利奎姆·努拉。我是阿利奎姆·莫莱斯蒂·埃拉特。这是一种新的葡萄品种。这是我的梦想。同侧相位。 努克·特里斯蒂克·坦普斯·莱克图斯

Morbi tincidunt,我坐在医院里,看医生,看医生,看医生,看医生。杜伊斯·塞勒里克·莫莱斯蒂·图皮斯。塞德·弗林利亚,马萨·埃吉特·卢克图斯·马莱苏阿达,梅特斯·厄洛斯·莫莱斯蒂·莱克托斯,我们的厄洛斯·多洛。埃尼安 aliquet-fringilla扫描电镜。悬钩子在舌苔中是舌苔。在爱神的前庭里祈祷。临床医生。库拉比图尔·奥纳雷·康塞奎特·努克。埃尼安·韦尔梅特斯。乌特·波苏尔·维韦拉·努拉。阿利奎姆·埃拉特·帕特。 佩伦茨克康瓦利斯。梅塞纳斯·费吉亚、佩伦特斯·普雷蒂姆·波苏尔、猫科动物奥勒姆·尤伊斯莫·费利斯、欧纳·利奥·尼西·维勒·费利斯。毛里斯·康塞德图尔·托托和珀鲁斯

毛里斯·埃利芬德和图皮斯。酒后驾车。潜力悬钩子。这是一种腐败,是一种腐败,是一种腐败,是一种腐败,是一种腐败,是一种腐败。前庭无前庭。每个科努比亚的社会责任等级 诺斯特拉,每一个接受者。Fusce苏打啤酒。这是一个很好的例子。这是一种很好的治疗方法。库拉比图尔·洛雷姆·埃尼姆、普雷蒂姆·内克、福吉亚·内克、卢克图斯·a、拉克斯

杜伊斯·库苏斯。梅塞纳斯·利古拉·厄罗斯、布兰迪·内克、法雷特拉、森佩尔、麦格纳。纳拉姆ac拉克斯。无便利。普雷森特·维韦拉·胡斯托·维塔·内克。普拉森特·布兰迪特·维利特。潜力悬钩子。多尼克·马蒂斯,麦格纳州佩德维尔·法雷特拉·布兰迪 口舌是爱欲的象征,也是爱的象征。南斯克利斯克。Donec non libero sed nulla mattis commodo。Ut矢状位。Donec nisi lectus,封建者porttitor,临时ac,临时vitae,pede。这是一种交通工具。 Maecenas commodo。佩伦茨克nec精英。拉库斯的福斯。维瓦摩斯是自由人,莱克图斯·亨德雷特·亨德雷特


在两种情况下添加以下行:

$(this).toggleClass("ui-state-active");

我认为你问题的关键在于你最后的评论

老实说,我就是找不到添加和删除该类的代码,它是一个Wordpress,而该部分必须是一个插件

几乎可以肯定的是,您在问题中显示的
li
click处理程序代码在插件切换类之前启动


解决此问题的唯一方法是找到插件,检查它引发的事件,并连接到这些事件以显示/隐藏您的内容。没有快捷方式。

添加html标记不行,这是客户端的Wordpress站点当然可以,只需复制并粘贴输出html,甚至只是其基本示例structure@Sergi是的,你可以。我们不想要你的客户端站点,我们也想要一个,你还没有告诉我们你是如何添加/删除类的-当然它会在你所展示的同一个处理程序中?你的意思是点击“Post-answer”吗?这似乎是一个评论,尽管即使这样也没有多大意义。OP说,他正在切换课程。(“…再次单击时,该类将被删除”)是右键单击该元素,它将重新激活是,它将在其他元素上被删除,但不会在他现在单击的元素上被删除,并且这将存储在“this”中。当您运行示例时,您永远不会在控制台中看到
。当我多次单击同一个“选项卡”时,我可能会想到。
.ui状态处于活动状态
来自jQuery ui。类应用于鼠标向下的可单击按钮类元素。将“可单击活动”容器样式应用于元素及其子文本、链接和图标。知道jQueryUI的哪个插件正在设置这个类,然后使用这个类的事件,而不是修改jQueryUI的源代码,这可能会很好