javascript - 如何使一个元素出现而不触发同一类的其他元素
问题描述
我必须制作一组出现和消失的按钮。
它应该如何工作:
- 我单击链接 1(此时链接 2 不可见)。
- 然后应该会出现链接 2。
这里的问题是可以有多个具有相同类的相同类型的元素,我无法弄清楚如何区分只显示与单击的“link1”相对应的“link2”而不触发另一个“link2”。
有一些代码显示了我取得的进展。
先感谢您!
<style>
.hideaction{
visibility: hidden;
}
.showaction{
visibility: visible;
}
</style>
<script>
$(document).ready(function(){
$(".elem_action_showing").click(function(){
$(".elem_action_hiding").removeClass("hideaction").addClass("showaction");
});
</script>
</head>
<body>
<div class="elem_card card_set_click" style=" border: 1px solid black">
<div class="elem_hidden">
<p class="hideaction elem_action_hiding">%link2%</p>
</div>
<div class="elem_showing ">
<p class="elem_action_showing set_click">%link1%</p>
</div>
</div>
<div class="elem_card card_set_click" style=" border: 1px solid black">
<div class="elem_hidden">
<p class="hideaction elem_action_hiding">%link2%</p>
</div>
<div class="elem_showing ">
<p class="elem_action_showing set_click">%link1%</p>
</div>
</div>
</body>
无论有多少“.elem_card”和“.hideaction”元素,该解决方案都应该有效。
解决方案
问题是因为您选择了所有.elem_action_hiding
元素。要解决此问题,请使用 DOM 遍历来仅查找与.elem_action_showing
单击的相关的那个。尝试这个:
$(".elem_action_showing").click(function() {
$(this).closest('.elem_showing').prev().find(".elem_action_hiding").toggleClass("hideaction showaction");
});
.hideaction {
visibility: hidden;
}
.showaction {
visibility: visible;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="elem_card card_set_click" style=" border: 1px solid black">
<div class="elem_hidden">
<p class="hideaction elem_action_hiding">%link2%</p>
</div>
<div class="elem_showing">
<p class="elem_action_showing set_click">%link1%</p>
</div>
</div>
<div class="elem_card card_set_click" style=" border: 1px solid black">
<div class="elem_hidden">
<p class="hideaction elem_action_hiding">%link2%</p>
</div>
<div class="elem_showing ">
<p class="elem_action_showing set_click">%link1%</p>
</div>
</div>
推荐阅读
- cmake - 相当于 gfortran 的 -static-lbgcc、ifort 中的 -static-libgfortran?
- ios - 在 'ForEach' 上引用初始化程序 'init(_:content:)' 要求 'Planet' 符合 'Identifiable'
- javascript - 在 JavaScript 中对数组中 JSON 对象内的值求和的最佳实践
- java - spring boot中的属性文件读取错误
- asp.net - System.OperationCanceledException:操作已取消 - Asp.net Web API
- python - [python]数字素数分区与2
- node.js - 如何从对象数组中获取一个元素
- function - 错误 - 如果您发送价值并且您发送的价值应该小于您当前的余额,则应该支付调用的函数
- javascript - 如何从输入字段解析 JSON
- awk - 查找与子字符串匹配的行,然后打印该行和以下内容