html - 使用 jQuery 隐藏和显示当前 div
问题描述
我如何隐藏以及如何隐藏 div,但只有当前 div,而不是全部。
JS:隐藏和显示块 div,但不仅仅是当前 div。
jQuery(document).ready(function () {
jQuery(".btn_txt_after_click").on("click", function () {
jQuery(".long_txt").toggle("slow");
jQuery(".btn_txt_after_click").toggle("slow");
jQuery(".btn_txt_before_click").toggle("slow");
jQuery(".short_txt").toggle("slow");
});
jQuery(".btn_txt_before_click").on("click", function () {
jQuery(".long_txt").toggle("slow");
jQuery(".btn_txt_before_click").toggle("slow");
jQuery(".btn_txt_after_click").toggle("slow");
jQuery(".short_txt").toggle("slow");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="toggle_text_button">
<p class="short_txt" style="display: none">Normal text</p>
<p style="display: block" class="long_txt">More text</p>
<div style="text-align: inherit">
<a href="#" class="read_more">
<span class="btn_txt_before_click" style="display: block">More</span>
<span class="btn_txt_after_click" style="display: none">Less</span>
</a>
</div>
</div>
<div class="toggle_text_button">
<p class="short_txt" style="display: none">Normal text</p>
<p style="display: block" class="long_txt">More text</p>
<div style="text-align: inherit">
<a href="#" class="read_more">
<span class="btn_txt_before_click" style="display: block">More</span>
<span class="btn_txt_after_click" style="display: none">Less</span>
</a>
</div>
</div>
解决方案
您可以通过使用$(this)
来定位当前事件发射器来做到这一点。
jQuery(document).ready(function () {
jQuery(".btn_txt_after_click").on("click", function () {
$(this).closest('.toggle_text_button').find(".long_txt").toggle("slow");
$(this).closest('.toggle_text_button').find(".btn_txt_after_click").toggle("slow");
$(this).closest('.toggle_text_button').find(".btn_txt_before_click").toggle("slow");
$(this).closest('.toggle_text_button').find(".short_txt").toggle("slow");
});
jQuery(".btn_txt_before_click").on("click", function () {
$(this).closest('.toggle_text_button').find(".long_txt").toggle("slow");
$(this).closest('.toggle_text_button').find(".btn_txt_before_click").toggle("slow");
$(this).closest('.toggle_text_button').find(".btn_txt_after_click").toggle("slow");
$(this).closest('.toggle_text_button').find(".short_txt").toggle("slow");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="toggle_text_button">
<p class="short_txt" style="display: none">Normal text</p>
<p style="display: block" class="long_txt">More text</p>
<div style="text-align: inherit">
<a href="#" class="read_more">
<span class="btn_txt_before_click" style="display: block">More</span>
<span class="btn_txt_after_click" style="display: none">Less</span>
</a>
</div>
</div>
<div class="toggle_text_button">
<p class="short_txt" style="display: none">Normal text</p>
<p style="display: block" class="long_txt">More text</p>
<div style="text-align: inherit">
<a href="#" class="read_more">
<span class="btn_txt_before_click" style="display: block">More</span>
<span class="btn_txt_after_click" style="display: none">Less</span>
</a>
</div>
</div>
推荐阅读
- consul - Consul 1.8.4 ui 未按预期加载
- azerothcore - 是否可以让 NPC 仅向具有特定成就的角色提供物品?
- list - 用搜索栏过滤长列表非常慢
- oracle - Oracle 19C - 尝试在 DBMS_LOCK 上授予执行时出错
- json - Receive Json sent from Angular to Laravel
- postgresql - Postges - 多列索引 - 前导(最左边)列
- javascript - 如何同时为所有用户运行 JavaScript 代码并为所有用户显示相同的生成数字
- php - Symfony“未检测到 PHP 二进制文件”
- python - 为什么numpy数组中相同索引选择的输出存在差异
- mysql - How to copy column values to a new SQL table, remove duplicates and create mappings?