Close one div when the other opens - Bootstrap

有些话、适合烂在心里 提交于 2019-11-28 10:06:22

问题


I'm using the bootstrap native collapse functionality Bootstrap: collapse.js v3.0.2 to open div's when a button is pressed. It works great but I would like one div to close when the other opens. Currently, as bootstrap designed it, a single button controls the toggling for the specific div. It is good if I wanted to have one button control one section, but I was wondering if there is a way to make a any button in my list of buttons, close any open div before opening its respective div.

I have reviewed this code * Bootstrap: collapse.js v3.0.2 * in the bootstrap.js filebut can't figure our how to do what I want.

Can someone point me in the right direction to help me determine what I need to do to get the functionality I'm looking for.

This is the URL to the page I'm developing where you can see the buttons working: http://23.229.158.126/orangecounty-coolsculpting.com/about-orange-county-dualsculpting.html

I don't know if I need to add more code to the file or if I can just call Bootstrap Data Attributes to accomplish this.

I have studied this page: http://getbootstrap.com/2.3.2/javascript.html#collapse

Thank you, Mike


回答1:



As I know you can't achieve what you want with Bootstrap data attributes.

So you can just add custom data attribute and add some custom javascript that will handle it:

I used the following data-attribute: data-collapse-group and the following javascript:

$("[data-collapse-group='myDivs']").click(function () {
    var $this = $(this);
    $("[data-collapse-group='myDivs']:not([data-target='" + $this.data("target") + "'])").each(function () {
        $($(this).data("target")).removeClass("in").addClass('collapse');
    });
});

Working example in jsFiddle based on your page.




回答2:


This will work for different groups of collapse elements without having to add any more js.

Just add the data attribute data-collapse-group, with an appropriate value, to the elements in your group that expand and collapse, not the button, and add the following js.

$("[data-collapse-group]").on('show.bs.collapse', function () {
  var $this = $(this);
  var thisCollapseAttr = $this.attr('data-collapse-group');
  $("[data-collapse-group='" + thisCollapseAttr + "']").not($this).collapse('hide');
});


来源:https://stackoverflow.com/questions/23971819/close-one-div-when-the-other-opens-bootstrap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!