javascript - 功能定制问题(点击显示以下部分)
问题描述
我在网上为我为客户制作的网站找到的功能存在问题。您可以通过以下链接https://synth-form.com/?page_id=1394查看。当您单击刀片型号(有型号 1 和型号 2)时,该功能就会起作用,并且基本上会显示下面的部分以及每种产品的具体规格。
如您所见,问题是当您单击一个然后单击另一个时,该部分会添加到已打开的部分下方。
当您单击另一个部分时,我需要之前打开的部分自动关闭。
这是我用来实现结果的代码。
<script>
document.addEventListener('DOMContentLoaded', function() {
jQuery(function($){
$('.showme').click(function(){
$(this).closest('.elementor-section').next().slideToggle();
$(this).toggleClass('opened');
});
});
});
</script>
<style>
.showme > div > div > a , .showme > div > div > div > i , .showme > div > div > img{
cursor: pointer;
-webkit-transition: transform 0.34s ease;
transition : transform 0.34s ease;
}
.opened > div > div > div > i , .opened > div > div > img{
}
</style>
然后我将 CSS ID显示给该部分。对于 BLADE 2,我复制并粘贴了 javascript 函数并将其命名为showme2。
有谁能帮助我吗?我对Javascript一无所知。
提前致谢
解决方案
这是一个例子:
JavaScript:
$('.showme').click(function () {
// gets unique element for section
// #first_section.elementor-section
let target = $('#' + $(this).data('target') + '.elementor-section');
// check if opened
if(target.is(':visible')) {
target.slideUp();
}
else {
// close all other elements if visible except current clicked.
$.each($('.elementor-section'), function () {
if($(this).get(0) !== target) {
if($(this).is(':visible')) {
$(this).slideUp();
}
}
});
// open current
target.slideDown();
}
});
HTML:
<!-- Buttons -->
<button class="showme" data-target="first_section"></button>
<button class="showme" data-target="second_section"></button>
<!-- Sections -->
<section id="first_section" class="elementor-section"></section>
<section id="second_section" class="elementor-section"></section>
或查看现场演示:JSitor - 现场演示
推荐阅读
- cs-cart - 如何以 1 英镑的价格为产品 3 定价,或以 2 的价格为产品 3 定价?
- html - 是否有必要包含 width="auto" 因为这是默认设置?
- jquery - 查找给定“this”对象的 HTML 元素,该对象不是其子对象
- c# - 如何启用弹出提交的视图状态
- javascript - 加载不同的 jquery 版本时,条件注释不起作用(一个用于 IE8)
- swift - 如何使用 Swift 在控制台应用程序上进行非阻塞键盘输入?
- c# - 我需要“UWP 的 Windows 桌面扩展”,但我在参考窗口中没有找到它
- typescript - 如何在泛型类中编写“K extends keyof T”然后使用 K
- byte - Hexdump:在字节和两字节十进制之间转换
- memory - TCL中的RAM内存