jquery - 如果另一个元素具有类,则更改元素的可见性
问题描述
我正在尝试使用 jQuery 创建一些基本功能。
我有 5 个容器,当单击其中一个容器时,需要显示下面的一段。之后单击另一个容器时,我希望显示另一个段落。(例如,当单击第 3 步时,我希望显示第 3 段)。
我尝试创建一个单击函数,该函数查找元素是否具有活动类,然后显示 X 编号段落。但是我不知道如何隐藏所有其他段落以仅显示一个。我也希望这些段落淡入淡出。
这是我的jsfiddle:
$("div").click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
$(".step1").click(function() {
if($(this).hasClass("active")){
$( ".text1" ).show( "fast" );
$(this).siblings.hide();
}
});
$(".step2").click(function() {
if($(this).hasClass("active")){
$( ".text2" ).show( "fast" );
$(this).siblings.hide();
}
});
$(".step3").click(function() {
if($(this).hasClass("active")){
$( ".text3" ).show( "fast" );
$(this).siblings.hide();
}
});
$(".step4").click(function() {
if($(this).hasClass("active")){
$( ".text4" ).show( "fast" );
$(this).siblings.hide();
}
});
$(".step5").click(function() {
if($(this).hasClass("active")){
$( ".text5" ).show( "fast" );
$(this).siblings.hide();
}
});
.text1, .text2, .text3, .text4, .text5 {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="step1 active">
<h3>Step 1</h3>
</div>
<div class="step2">
<h3>Step 2</h3>
</div>
<div class="step3">
<h3>Step 3</h3>
</div>
<div class="step4">
<h3>Step 4</h3>
</div>
<div class="step5">
<h3>Step 5</h3>
</div>
<p class="text1">Ius cu iusto prodesset, per legimus gubergren liberavisse ex, sit sint semper fabulas ex. At eum sumo iudicabit posidonium, ex his assum nonumy eloquentiam. An tritani nonumes mei, at diam facer posidonium sed. Has id dicit partem regione. Vim soleat singulis honestatis ut. His at rebum postulant forensibus.</p>
<p class="text2">legimus gubergren liberavisse ex, sit sint semper fabulas ex. At eum sumo iudicabit posidonium, ex his assum nonumy eloquentiam. An tritani nonumes mei, at diam facer posidonium sed. Has id dicit partem regione. Vim soleat singulis honestatis ut. His at rebum postulant forensibus.</p>
<p class="text3">Prodesset, per legimus gubergren liberavisse ex, sit sint semper fabulas ex. At eum sumo iudicabit posidonium, ex his assum nonumy eloquentiam. An tritani nonumes mei, at diam facer posidonium sed. Has id dicit partem regione. Vim soleat singulis honestatis ut. His at rebum postulant forensibus.</p>
<p class="text4">Legimus gubergren liberavisse ex, sit sint semper fabulas ex. At eum sumo iudicabit posidonium, ex his assum nonumy eloquentiam. An tritani nonumes mei, at diam facer posidonium sed. Has id dicit partem regione. Vim soleat singulis honestatis ut. His at rebum postulant forensibus.</p>
<p class="text5">Set, per legimus gubergren liberavisse ex, sit sint semper fabulas ex. At eum sumo iudicabit posidonium, ex his assum nonumy eloquentiam. An tritani nonumes mei, at diam facer posidonium sed. Has id dicit partem regione. Vim soleat singulis honestatis ut. His at rebum postulant forensibus.</p>
解决方案
尝试更改 slibings 选择器
在你的情况下$(this).siblings.hide();
$(this) 是一个按钮而不是文本
...
$(".step1").click(function() {
if($(this).hasClass("active")){
$(".text1").show("fast");
$(".text1").siblings("p").hide();
}
});
$(".step2").click(function() {
if($(this).hasClass("active")){
$(".text2").show("fast");
$(".text2").siblings("p").hide();
}
});
....
推荐阅读
- algorithm - 比较 Kotlin 中的两个对象
- memory - 同时传递拥有的内存和引用会激怒借用检查器
- flutter - 我迁移到了空安全,我无法运行“flutter pub run build_runner build”而不抛出错误
- sql - 如何为此类条件编写触发器?(3张桌子)
- python - 计算数据集中的 URL
- unity3d - Unity3D 将 Vector3 数据作为新场景中的新位置传递
- swiftui - 将 OnDelete 与 Reversed() 数组一起使用 - IndexSet 不匹配
- scikit-learn - 为新的未见数据评估保留 one-hot 编码数组大小
- java - 使用 simple-slack-api 将“xoxb-....”机器人令牌连接到 Slack 时,令牌类型不允许
- c - printf 在不为格式字符串 C 传递变量的情况下以某种方式工作