JQuery onclick用另一个类选择这个
我有这样一个代码:JQuery onclick用另一个类选择这个,jquery,class,this,Jquery,Class,This,我有这样一个代码: $(".um").click(function () { $(".subconteudo.dois").slideUp(); $(".subconteudo.tres").slideUp(); $(".subconteudo.quatro").slideUp(); $(".subconteudo.cinco").slideUp(); $(".subconteudo.um").slideDown(3000); }); $(".um, .
$(".um").click(function () {
$(".subconteudo.dois").slideUp();
$(".subconteudo.tres").slideUp();
$(".subconteudo.quatro").slideUp();
$(".subconteudo.cinco").slideUp();
$(".subconteudo.um").slideDown(3000);
});
$(".um, .dois, .tres, .quatro, .cinco").click(function () {
$(".subconteudo.um").slideUp();
$(".subconteudo.dois").slideUp();
$(".subconteudo.tres").slideUp();
$(".subconteudo.quatro").slideUp();
$(".subconteudo.cinco").slideUp();
$(this + ".subconteudo").slideDown();
});
<div class="menu">
<div class="submenu um"></div>
<div class="submenu dois"></div>
<div class="submenu tres"></div>
<div class="submenu quatro"></div>
<div class="submenu cinco"></div>
</div>
<div class="conteudo">
<div class="subconteudo um"></div>
<div class="subconteudo dois"></div>
<div class="subconteudo tres"></div>
<div class="subconteudo quatro"></div>
<div class="subconteudo cinco"></div>
</div>
每门课多5次(嗯,dois,…)。我正试图用“this”来编写一个更小的代码,如下所示:
$(".um").click(function () {
$(".subconteudo.dois").slideUp();
$(".subconteudo.tres").slideUp();
$(".subconteudo.quatro").slideUp();
$(".subconteudo.cinco").slideUp();
$(".subconteudo.um").slideDown(3000);
});
$(".um, .dois, .tres, .quatro, .cinco").click(function () {
$(".subconteudo.um").slideUp();
$(".subconteudo.dois").slideUp();
$(".subconteudo.tres").slideUp();
$(".subconteudo.quatro").slideUp();
$(".subconteudo.cinco").slideUp();
$(this + ".subconteudo").slideDown();
});
<div class="menu">
<div class="submenu um"></div>
<div class="submenu dois"></div>
<div class="submenu tres"></div>
<div class="submenu quatro"></div>
<div class="submenu cinco"></div>
</div>
<div class="conteudo">
<div class="subconteudo um"></div>
<div class="subconteudo dois"></div>
<div class="subconteudo tres"></div>
<div class="subconteudo quatro"></div>
<div class="subconteudo cinco"></div>
</div>
可能吗?怎么用?
非常感谢。
顺便说一下,html代码如下所示:
$(".um").click(function () {
$(".subconteudo.dois").slideUp();
$(".subconteudo.tres").slideUp();
$(".subconteudo.quatro").slideUp();
$(".subconteudo.cinco").slideUp();
$(".subconteudo.um").slideDown(3000);
});
$(".um, .dois, .tres, .quatro, .cinco").click(function () {
$(".subconteudo.um").slideUp();
$(".subconteudo.dois").slideUp();
$(".subconteudo.tres").slideUp();
$(".subconteudo.quatro").slideUp();
$(".subconteudo.cinco").slideUp();
$(this + ".subconteudo").slideDown();
});
<div class="menu">
<div class="submenu um"></div>
<div class="submenu dois"></div>
<div class="submenu tres"></div>
<div class="submenu quatro"></div>
<div class="submenu cinco"></div>
</div>
<div class="conteudo">
<div class="subconteudo um"></div>
<div class="subconteudo dois"></div>
<div class="subconteudo tres"></div>
<div class="subconteudo quatro"></div>
<div class="subconteudo cinco"></div>
</div>
为什么不仅仅是这个
$(".um, .dois, .tres, .quatro, .cinco").click(function () {
if($(this).hasClass('subconteudo')) {
$(".subconteudo").not(this).slideUp();
}
else if ($(this).hasClass('submenu')) {
$(".submenu").not(this).slideUp();
}
$(this).slideDown(3000);
});
由于所有元素似乎都有一个公共类
subceundo
,因此您可以始终将它们作为目标,而不包括当前单击的元素。使用filter()
和一个简单的正则表达式(/\b(um | dois | tres | quatro cinco)\b/g
)尝试此解决方案:
它通过正则表达式在类中获取菜单。这是必要的,因为菜单可以有一个以上的列表类.um、.dois、.tres、.quatro、.cinco
-(如果有,它会按照以下顺序选择第一个找到的类:.um
->.dois
->.tres
->.quatro
->.cinco
,这是有意的)
此外,这将防止单击的subceudo
向上滑动。(将仅向上滑动其他部分。)
为所有这些设置一个公共类,然后执行$('.commonclass')。单击(function(){$('.subceudo').slideUp();})
,这样可以保存6行内容。是的!:)
您只能使用4行。我对原来的HTML代码做了一点修改,但我认为现在更好了
JS
HTML
菜单1
菜单2
菜单3
菜单4
菜单5
情境1
情境2
情境3
情境4
情境5
为什么不干脆$(这个).slideDown()
?为所有这些设置一个公共类,然后执行$('.commonclass')。单击(function(){$('.subceudo').slideUp();})
,这样你可以节省6行。@SebastianUrielMurawczik回答这个问题!我必须指定要向上滑动的前一个类,否则它不会执行任何操作因为您没有常见的类出现,您可以在单击的元素上检查该类。。选中编辑。。如果您有多个类,这会很麻烦,因此对于每个类实例,您都需要一个检查条件。。你可以使用一个普通的类,我编辑了答案。代码的行为是相同的,但它更简单。这是我一直在寻找的,但我需要你退休的类,所以我更容易使用来自acdcjunior的代码。