javascript - 为什么链接显示更多/更少同时打开
问题描述
简而言之,我有 3 个链接显示更多/更少,当我单击其中一个显示内容时,所有其他内容都会打开!单击链接时,我需要分别打开每个内容。
$(".o-block-global__wysiwyg").addClass("show-more-height");
$('.btn--link').on("click", function(e) {
e.preventDefault();
if ($(this).parent().prev($(".o-block-global__wysiwyg")).hasClass("show-more-height")) {
$(this).text("Afficher moins");
} else {
$(this).text("Afficher plus");
}
$(".o-block-global__wysiwyg").toggleClass("show-more-height");
});
// reduce content height
.o-block-global__wysiwyg {
&.show-more-height {
height: 5rem;
overflow: hidden;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="o-block-global__wysiwyg wysiwyg">
<ul>
<li>Lorem ipsum</li>
<li>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vel quasi libero labore aut minima laborum illo aliquid quidem doloremque exercitationem vero praesentium harum, blanditiis quam fuga expedita ipsam, molestiae deleniti.
<ul>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
</ul>
</li>
</ul>
</div>
<div class="o-block-global__links">
<a href="#" class="btn btn--link">
Afficher plus </a>
<a href="#" target="_blank" class="btn btn--plain btn--primary external-link" title="Plain Primary (nouvelle fenêtre)">
Plain Primary <span class="icon-external-link" aria-hidden="true"></span></a>
</div>
解决方案
我没有看到 html.btn--link
来知道它在上下文中它正在切换的元素的位置,但是从其他行来看,您应该更改这一行:
$(".o-block-global__wysiwyg").toggleClass("show-more-height");
至
$(this).parent().prev($(".o-block-global__wysiwyg")).toggleClass("show-more-height");
目前,它正在切换具有相同类的所有元素,而不是您想要切换的元素。
代码笔: https ://codepen.io/martincarlin87/pen/QWdJbqj
推荐阅读
- javascript - 通过匹配表中的关联为行着色
- c++ - 计算大斐波那契数的 mod m
- vue.js - 如何以正确的方式在 Nuxt 项目中添加 Vuepress?
- class - unity 获取子数据
- cuda - 修改基本示例 VECADD 以使用共享内存
- typescript - 使用 Typescript 时解析器出现 Apollo GraphQL Schema Stitching 问题
- java - 如何绘制多边形,然后按比例调整大小并将其移动到显示区域的中心?
- button - Flutter:设置 RatingBar 值时启用按钮
- python - 为什么我的 .current 没有为组合框设置默认值,即使我使用了一个类来初始化?
- javascript - 如何使用 Cypress 在 Sharepoint 上测试 .aspx 页面