@@ -5,19 +5,23 @@ Drupal.behaviors.accordion = {
55 const controls = context . querySelectorAll ( '.accordion__controls__item' ) ;
66 // Classes
77 const itemToggle = '.js-accordion-item__toggle' ;
8+ const itemContent = '.accordion-item__content' ;
89 const itemState = 'data-accordion-expanded' ;
910 const buttonState = 'aria-expanded' ;
11+ const contentState = 'aria-hidden' ;
1012
1113 // Function to expand an accordion item.
12- const expand = ( item , button ) => {
14+ const expand = ( item , button , content ) => {
1315 item . setAttribute ( itemState , 'true' ) ;
1416 button . setAttribute ( buttonState , 'true' ) ;
17+ content . setAttribute ( contentState , 'false' ) ;
1518 } ;
1619
1720 // Function to collapse an accordion item.
18- const collapse = ( item , button ) => {
21+ const collapse = ( item , button , content ) => {
1922 item . setAttribute ( itemState , 'false' ) ;
2023 button . setAttribute ( buttonState , 'false' ) ;
24+ content . setAttribute ( contentState , 'true' ) ;
2125 } ;
2226
2327 /* eslint-disable */
@@ -50,16 +54,17 @@ Drupal.behaviors.accordion = {
5054 // Toggle accordion content when toggle is activated.
5155 items . forEach ( ( item ) => {
5256 const button = item . querySelector ( itemToggle ) ;
57+ const content = item . querySelector ( itemContent ) ;
5358
5459 const anchor = item . id ;
5560 // eslint-disable-next-line
5661 const newUrl = `${ getUrl ( ) } ` + '#' + `${ anchor } ` ;
5762
5863 // Hide all accordion content sections if JavaScript is enabled.
59- collapse ( item , button ) ;
64+ collapse ( item , button , content ) ;
6065
6166 if ( item . getAttribute ( 'id' ) && item . getAttribute ( 'id' ) === getAnchor ( ) ) {
62- expand ( item , button ) ;
67+ expand ( item , button , content ) ;
6368 }
6469
6570 button . addEventListener ( 'click' , ( ) => {
@@ -74,8 +79,8 @@ Drupal.behaviors.accordion = {
7479 }
7580 // Toggle the item's state.
7681 return button . getAttribute ( buttonState ) === 'true'
77- ? collapse ( item , button )
78- : expand ( item , button ) ;
82+ ? collapse ( item , button , content )
83+ : expand ( item , button , content ) ;
7984 } ) ;
8085 } ) ;
8186
@@ -96,11 +101,12 @@ Drupal.behaviors.accordion = {
96101 // Iterate over
97102 allItems . forEach ( ( item ) => {
98103 const button = item . querySelector ( itemToggle ) ;
104+ const content = item . querySelector ( itemContent ) ;
99105
100106 if ( action === false ) {
101- collapse ( item , button ) ;
107+ collapse ( item , button , content ) ;
102108 } else {
103- expand ( item , button ) ;
109+ expand ( item , button , content ) ;
104110 }
105111 } ) ;
106112 } ) ;
0 commit comments