Javascript 打开当前div时关闭其他打开的div(jQuery)
我得到了几个元素,当点击它时显示一个div。唯一的问题是,当您单击所有div时,所有div都将打开,而不仅仅是单击的div 我的jquery:Javascript 打开当前div时关闭其他打开的div(jQuery),javascript,jquery,html,css,Javascript,Jquery,Html,Css,我得到了几个元素,当点击它时显示一个div。唯一的问题是,当您单击所有div时,所有div都将打开,而不仅仅是单击的div 我的jquery: <script> $(document).ready(function() { $('.servicemark').click(function() { console.log($(this).attr('data-toggle')); var type = $(this).attr('data-to
<script>
$(document).ready(function() {
$('.servicemark').click(function() {
console.log($(this).attr('data-toggle'));
var type = $(this).attr('data-toggle');
$('.'+type).slideToggle("slide");
});
});
</script>
$(文档).ready(函数(){
$('.servicemark')。单击(函数(){
log($(this.attr('data-toggle'));
变量类型=$(this.attr('data-toggle');
$('..+类型).slideToggle(“slide”);
});
});
我的html/php:
<section class="def-section home-services">
<div class="container">
<div class="row">
<?php
foreach($blocks as $block) {
$images = json_decode($block->images);
echo '
<!-- === SERVICE ITEM === -->
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12 servicemark" data-toggle="'.$block->alias.'" style="cursor:pointer;">
<div class="service-mark-border-top"></div>
<div class="service-mark-border-right"></div>
<div class="service-mark-border-bottom"></div>
<div class="service-mark-border-left"></div>
<div class="service">
<div class="service-icon">
<img src="cms/'.$images->image_intro.'" />
</div>
<h3>'.$block->title.'</h3>
<div class="service-text">
<p>'.$block->introtext.'</p>
</div>
</div>
</div>
';
}
?>
试试这个(基于并感谢Juan C.
评论):
试试这个:
$(document).ready(function() {
$('.servicemark').click(function() {
console.log($(this).attr('data-toggle'));
$(".servicemark").slideUp();
$(this).slideDown();
})
})
谢谢,但这仍然会打开多个div,而不是关闭其余的div。只需确保您隐藏的不是slidetoggle
$('.+type)。slidetoggle(“slide”)。同胞(“.row”)。隐藏(“slide”)代码>@JuanC。谢谢,我已经测试过了,看起来很有效。我只删除了隐藏
功能中的幻灯片
,以避免出现双重动画。谢谢,我只测试了这个答案(它可以工作),如果我没记错的话,你的答案会快一点,所以我会接受。谢谢,总是很乐意帮助。再次感谢胡安克。
$('.' + type).slideToggle("slide").siblings(".row").hide();
$(document).ready(function() {
$('.servicemark').click(function() {
console.log($(this).attr('data-toggle'));
$(".servicemark").slideUp();
$(this).slideDown();
})
})