Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 打开当前div时关闭其他打开的div(jQuery)_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 打开当前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

我得到了几个元素,当点击它时显示一个div。唯一的问题是,当您单击所有div时,所有div都将打开,而不仅仅是单击的div

我的jquery:

<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();

    })

})