具有相同类别的Div - 只允许一个在任何时间打开

时间:2015-09-15 16:50:16

标签: jquery

我已经设置了一个包含一些团队资料的页面。

在CSS中,所有个人资料描述都是隐藏的。

点击个人资料后,我会显示该个人资料的说明。

同时我想要打开的前一个关闭。

此代码一切正常,但是如果我尝试关闭当前打开的那个,那么它会关闭然后再次打开。

当我阅读代码时,我可以看到为什么会发生这种情况,但我不确定如何在不打开它的情况下关闭一个打开的配置文件?

HTML

<div class="profile">

    <img src="img/profile.jpg" />

    <p>Name</p>

    <p>Job Title</p>

    <p class="text"></p>

    <div class="description">

        <p>Blah blah blah</p>

    </div> <!-- description -->

</div> <!-- .profile -->

JQUERY

$(document).ready(function(){

    $('.team p.text').prepend('Biog');

    $('.team .profile', this).click(function(e) {

        $('.description').slideUp();    

        $('p.text').text('Biog');

        var change = $(this).find('p.text');

        $('.description', this).slideToggle(1000, 'linear', function() {

            change.text($(this).is(':visible') ? 'Close biog' : 'Biog');

        });

        e.preventDefault();

    });

}); 

非常感谢所有的帮助和时间。

1 个答案:

答案 0 :(得分:0)

正常的解决方案是排除&#34;当前&#34;来自幻灯片的面板,例如不使用:

$(document).ready(function(){
    $('.team p.text').prepend('Biog');
    $('.team .profile', this).click(function(e) {
        $('p.text').text('Biog');
        var change = $(this).find('p.text');
        $('.description').not($('.description', this).slideToggle(1000, 'linear', function() {
            change.text($(this).is(':visible') ? 'Close biog' : 'Biog');
        })).slideUp();
        e.preventDefault();
    });
});

抱歉没有让代码更清晰,但没有HTML ......(提示)