You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be really helpful to have a bit in the docs which explains how to use this library to programmatically open/close sections. I have worked out a way to do it, but I'm not sure if there's a better way which the library expects.
Note, I've found that when you programmatically open a section, other open sections do not close, even if closeOther is set to true. (Not sure whether this is a bug, though.)
and then later, close open sections and open another:
var newSection = $("#my-inner-content")[0].closest('.acc_section');
var acc = $('.accordionjs').accordionjs({activeIndex: false});
// Close all open sections which aren't the one that's been selected
acc.closeOtherSections($(newSection), 0);
// Open the selected section only if it isn't already
if (! $(newSection).hasClass('acc_active')) {
acc.openSection($(newSection), 0);
}
NB: You have to pass things like "activeIndex" again when you re-instantiate the accordion to call methods on it. The alternative, I guess, is to put them in the HTML as data- attributes or to store the original variable instantiated in document.ready.
And for those Googling, this will not work because you haven't called accordionjs() on it:
var newSection = $('#my-inner-content')[0].closest('.acc_section');
$(".accordionjs").openSection($(newSection), 0);
This throws Uncaught TypeError: $(...).openSection is not a function.
The text was updated successfully, but these errors were encountered:
nk9
changed the title
How to open/close sections programmatically?
Please document how to open/close sections programmatically
Nov 25, 2019
It would be really helpful to have a bit in the docs which explains how to use this library to programmatically open/close sections. I have worked out a way to do it, but I'm not sure if there's a better way which the library expects.
Note, I've found that when you programmatically open a section, other open sections do not close, even if
closeOther
is set totrue
. (Not sure whether this is a bug, though.)For the curious, here's my solution:
and then later, close open sections and open another:
NB: You have to pass things like "activeIndex" again when you re-instantiate the accordion to call methods on it. The alternative, I guess, is to put them in the HTML as
data-
attributes or to store the original variable instantiated indocument.ready
.And for those Googling, this will not work because you haven't called
accordionjs()
on it:This throws
Uncaught TypeError: $(...).openSection is not a function
.The text was updated successfully, but these errors were encountered: