Javascript 展开折叠div

Javascript 展开折叠div,javascript,jquery,html,css,sass,Javascript,Jquery,Html,Css,Sass,我有不同的div,我想点击一个div并扩展它的内容,如果我再次点击它应该隐藏该内容,这很好,但我有不同的div,我只想同时扩展一个div,我应该如何达到这个目的 这不太好,你看现在我可以扩展几个div吗,我如何确保不会发生这种情况 这就是我想要达到的目标: JQuery函数,当我点击一个新的div时,如何折叠任何其他扩展的div $(".contact_item .head").click(function () { if ($(this).parent('div

我有不同的div,我想点击一个div并扩展它的内容,如果我再次点击它应该隐藏该内容,这很好,但我有不同的div,我只想同时扩展一个div,我应该如何达到这个目的

这不太好,你看现在我可以扩展几个div吗,我如何确保不会发生这种情况

这就是我想要达到的目标:

JQuery函数,当我点击一个新的div时,如何折叠任何其他扩展的div

  $(".contact_item .head").click(function () {
            if ($(this).parent('div').hasClass('expanded')) {
                $(this).next('div').slideUp();
                $(this).parent('div').removeClass('expanded');
            } else {
                $(this).parent('div').addClass('expanded');
                $(this).next('div').slideDown();
            }
        });
Html代码:

<div class="container">
            <div class="row">
                <div class="col-lg-3 col-md-3 col-sm-3"> </div>
                <div class="col-lg-9 col-md-9 col-sm-9 white">
                    <div class="row">
                        <div class="col-lg-9 col-md-9 col-sm-8 col-xs-12 rghtpd"><style>.rghtpd{padding-right: 0px !important; width:583px;}</style>
                            <div class="title">Contact us</div>
                            <div class="row">
                                <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
                                                                                                                                                    <div class="contact_item expanded">
                                            <div class="head">
                                                <div class="name">California office<span class="plus">+</span> <span class="minus">-</span></div>
                                            </div>
                                            <div class="info" style="display: block;">
                                                <ul>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                        One Embarcadero Center Suite 500, San Fransisco, 94111, CA
                                                    </li>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                        (415) 639-3001
                                                    </li>
                                                </ul>
                                                <div class="clearfix"></div>
                                            </div>
                                        </div>
                                        <div class="contact_item">
                                            <div class="head">
                                                <div class="name">Florida office<span class="plus">+</span> <span class="minus">-</span></div>
                                            </div>
                                            <div class="info" style="display: none;">
                                                <ul>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                        9600 Koger Blvd. Suite 225, St. Petersburg, 33702, FL
                                                    </li>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                        (727) 578-2800
                                                    </li>
                                                </ul>
                                                <div class="clearfix"></div>
                                            </div>
                                        </div>
                                        <div class="contact_item">
                                            <div class="head">
                                                <div class="name">London office<span class="plus">+</span> <span class="minus">-</span></div>
                                            </div>
                                            <div class="info" style="display: none;">
                                                <ul>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                        Lloyd's Building, Gallery 4 12 Leadenhall St., London, EC3V 1LP, England
                                                    </li>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                        (0207) 101-9395
                                                    </li>
                                                </ul>
                                                <div class="clearfix"></div>
                                            </div>
                                        </div>
                                        <div class="contact_item ">
                                            <div class="head">
                                                <div class="name">myName office<span class="plus">+</span> <span class="minus">-</span></div>
                                            </div>
                                            <div class="info">
                                                <ul>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                        123 Fake st , Springfield, 12345, OH
                                                    </li>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                        555
                                                    </li>
                                                </ul>
                                                <div class="clearfix"></div>
                                            </div>
                                        </div>
                                </div>
                                <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
                                        <div class="contact_item expanded">
                                            <div class="head">
                                                <div class="name">Ohio office<span class="plus">+</span> <span class="minus">-</span></div>
                                            </div>
                                            <div class="info" style="display: block;">
                                                <ul>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                        4449 Easton Way 2nd Floor, Columbus, 43219, OH
                                                    </li>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                        (614)526-8754
                                                    </li>
                                                </ul>
                                                <div class="clearfix"></div>
                                            </div>
                                        </div>
                                        <div class="contact_item">
                                            <div class="head">
                                                <div class="name">Pennsylvania office<span class="plus">+</span> <span class="minus">-</span></div>
                                            </div>
                                            <div class="info" style="display: none;">
                                                <ul>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                        One International Plaza Suite 550, Philadelphia, 19113, PA
                                                    </li>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                        (215) 279-5845
                                                    </li>
                                                </ul>
                                                <div class="clearfix"></div>
                                            </div>
                                        </div>
                                        <div class="contact_item ">
                                            <div class="head">
                                                <div class="name">Texas office<span class="plus">+</span> <span class="minus">-</span></div>
                                            </div>
                                            <div class="info">
                                                <ul>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                        950 Echo Lane Suite 200, Houston, 77024, TX
                                                    </li>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                        (832) 586-0301
                                                    </li>
                                                </ul>
                                                <div class="clearfix"></div>
                                            </div>
                                        </div>
                                        <div class="contact_item ">
                                            <div class="head">
                                                <div class="name">WASH office<span class="plus">+</span> <span class="minus">-</span></div>
                                            </div>
                                            <div class="info">
                                                <ul>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                        1100 Dexter Avenue North Suite 100, Seattle, 98109, WA
                                                    </li>
                                                    <li>
                                                        <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                        (253)271-9692
                                                    </li>
                                                </ul>
                                                <div class="clearfix"></div>
                                            </div>
                                        </div>
                                </div>
                            </div>
                        </div>
我对JQuery函数做了一些修改,现在它只允许扩展一个div,但我必须单击两次才能扩展一个div,第一次它关闭任何其他扩展的div,但没有打开我单击的div,第二次打开:

  $(".contact_item .head").click(function () {            
            if ($(".contact_item .head").parent('div').hasClass('expanded')) {
                $(".contact_item .head").next('div').slideUp();
                $(".contact_item .head").parent('div').removeClass('expanded');

            } else {
                $(this).parent('div').addClass('expanded');
                $(this).next('div').slideDown();
            }
        });

我试图实现您的要求:


.rghtpd{右边填充:0px!重要;宽度:583px;}
联系我们
加州办事处+-
  • 加利福尼亚州圣弗朗西斯科Embarcadero中心500号套房一间,邮编94111
  • (415) 639-3001
佛罗里达办事处+-
  • 科格大道9600号。佛罗里达州圣彼得堡市225号套房,33702
  • (727) 578-2800
伦敦办事处+-
  • 英国伦敦利登霍尔街12号劳埃德大厦4号画廊,EC3V 1LP
  • (0207) 101-9395
我的名字办公室+-
  • 斯普林菲尔德假街123号,12345,哦
  • 555
俄亥俄州办事处+-
  • 俄亥俄州哥伦布市伊斯顿路4449号2楼,邮编:43219
  •   $(".contact_item .head").click(function () {            
                if ($(".contact_item .head").parent('div').hasClass('expanded')) {
                    $(".contact_item .head").next('div').slideUp();
                    $(".contact_item .head").parent('div').removeClass('expanded');
    
                } else {
                    $(this).parent('div').addClass('expanded');
                    $(this).next('div').slideDown();
                }
            });
    
    <div class="container">
                <div class="row">
                    <div class="col-lg-3 col-md-3 col-sm-3"> </div>
                    <div class="col-lg-9 col-md-9 col-sm-9 white">
                        <div class="row">
                            <div class="col-lg-9 col-md-9 col-sm-8 col-xs-12 rghtpd"><style>.rghtpd{padding-right: 0px !important; width:583px;}</style>
                                <div class="title">Contact us</div>
                                <div class="row">
                                    <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
                                                                                                                                                        <div class="contact_item expanded">
                                                <div class="head">
                                                    <div class="name">California office<span class="plus">+</span> <span class="minus">-</span></div>
                                                </div>
                                                <div class="info" style="display: block;">
                                                    <ul>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                            One Embarcadero Center Suite 500, San Fransisco, 94111, CA
                                                        </li>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                            (415) 639-3001
                                                        </li>
                                                    </ul>
                                                    <div class="clearfix"></div>
                                                </div>
                                            </div>
                                            <div class="contact_item">
                                                <div class="head">
                                                    <div class="name">Florida office<span class="plus">+</span> <span class="minus">-</span></div>
                                                </div>
                                                <div class="info" style="display: none;">
                                                    <ul>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                            9600 Koger Blvd. Suite 225, St. Petersburg, 33702, FL
                                                        </li>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                            (727) 578-2800
                                                        </li>
                                                    </ul>
                                                    <div class="clearfix"></div>
                                                </div>
                                            </div>
                                            <div class="contact_item">
                                                <div class="head">
                                                    <div class="name">London office<span class="plus">+</span> <span class="minus">-</span></div>
                                                </div>
                                                <div class="info" style="display: none;">
                                                    <ul>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                            Lloyd's Building, Gallery 4 12 Leadenhall St., London, EC3V 1LP, England
                                                        </li>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                            (0207) 101-9395
                                                        </li>
                                                    </ul>
                                                    <div class="clearfix"></div>
                                                </div>
                                            </div>
                                            <div class="contact_item ">
                                                <div class="head">
                                                    <div class="name">myName office<span class="plus">+</span> <span class="minus">-</span></div>
                                                </div>
                                                <div class="info">
                                                    <ul>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                            123 Fake st , Springfield, 12345, OH
                                                        </li>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                            555
                                                        </li>
                                                    </ul>
                                                    <div class="clearfix"></div>
                                                </div>
                                            </div>
                                    </div>
                                    <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
                                            <div class="contact_item expanded">
                                                <div class="head">
                                                    <div class="name">Ohio office<span class="plus">+</span> <span class="minus">-</span></div>
                                                </div>
                                                <div class="info" style="display: block;">
                                                    <ul>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                            4449 Easton Way 2nd Floor, Columbus, 43219, OH
                                                        </li>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                            (614)526-8754
                                                        </li>
                                                    </ul>
                                                    <div class="clearfix"></div>
                                                </div>
                                            </div>
                                            <div class="contact_item">
                                                <div class="head">
                                                    <div class="name">Pennsylvania office<span class="plus">+</span> <span class="minus">-</span></div>
                                                </div>
                                                <div class="info" style="display: none;">
                                                    <ul>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                            One International Plaza Suite 550, Philadelphia, 19113, PA
                                                        </li>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                            (215) 279-5845
                                                        </li>
                                                    </ul>
                                                    <div class="clearfix"></div>
                                                </div>
                                            </div>
                                            <div class="contact_item ">
                                                <div class="head">
                                                    <div class="name">Texas office<span class="plus">+</span> <span class="minus">-</span></div>
                                                </div>
                                                <div class="info">
                                                    <ul>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                            950 Echo Lane Suite 200, Houston, 77024, TX
                                                        </li>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                            (832) 586-0301
                                                        </li>
                                                    </ul>
                                                    <div class="clearfix"></div>
                                                </div>
                                            </div>
                                            <div class="contact_item ">
                                                <div class="head">
                                                    <div class="name">WASH office<span class="plus">+</span> <span class="minus">-</span></div>
                                                </div>
                                                <div class="info">
                                                    <ul>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/marker.png"></div>
                                                            1100 Dexter Avenue North Suite 100, Seattle, 98109, WA
                                                        </li>
                                                        <li>
                                                            <div class="icon"><img alt="" src="//lig.azureedge.net/public/UK/Content/Images/phone.png"></div>
                                                            (253)271-9692
                                                        </li>
                                                    </ul>
                                                    <div class="clearfix"></div>
                                                </div>
                                            </div>
                                    </div>
                                </div>
                            </div>
    
    $(".contact_item .head").click(function () {
    
                if ($(this).parent('div').hasClass('expanded')) {
                    $(this).next('div').slideUp();
                    $(this).parent('div').removeClass('expanded');
                    $(".info").each(function(i , obj){
                        console.log($(obj))
                      $(obj).removeClass('expanded');
                      $(obj).slideUp();
                    })
                } else {
                     $(".info").each(function(i , obj){
                        console.log($(obj))
                      $(obj).removeClass('expanded');
                      $(obj).slideUp();
                    })
                    $(this).parent('div').addClass('expanded');
                    $(this).next('div').slideDown();
                }
    
    
            });
    
    .contact_item{
      background-color: #bdc3c7;
      color: white;
      margin-bottom: 10px
    }
    
     $('.contact_item').on('click', '.head', function () {
       var clicked = $(this).closest('.contact_item');
       $('.contact_item.expanded').add(clicked).toggleClass('expanded');
     });
    
     $(".contact_item .head").click(function () {
                var flag = $(this).parent('div').hasClass('expanded');            
                if ($(".contact_item .head").parent('div').hasClass('expanded')) {
                    $(".contact_item .head").next('div').slideUp();
                    $(".contact_item .head").parent('div').removeClass('expanded');                 
                    if (flag==false) {
                        $(this).parent('div').addClass('expanded');
                        $(this).next('div').slideDown();
                    }
                }           
                else {
                    $(this).parent('div').addClass('expanded');
                    $(this).next('div').slideDown();
                }
            });