# simpletoc/7.4.0/assets/accordion.js

SimpleTOC – Table of Contents Block, version 7.4.0. 37 lines.

- Page: https://pluginprobe.com/plugins/simpletoc/7.4.0/code/assets/accordion.js
- Raw: https://pluginprobe.com/plugins/simpletoc/7.4.0/raw/assets/accordion.js
- Modified: 2025-02-15T15:16:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/simpletoc/7.4.0/code/assets/accordion.js#L10-L20`.

```javascript
/**
 * SimpleTOC load function.
 */
const simpletocLoad = function () {
	const buttons = document.querySelectorAll( 'button.simpletoc-collapsible' );

	buttons.forEach( ( button ) => {
		button.addEventListener( 'click', () => {
			button.classList.toggle( 'active' );
			const content = button.parentElement.nextElementSibling;
			const isCollapsed =
				! content.style.maxHeight || content.style.maxHeight === '0px';

			button.setAttribute(
				'aria-expanded',
				isCollapsed ? 'true' : 'false'
			);
			content.style.maxHeight = isCollapsed
				? `${ content.scrollHeight }px`
				: '0px';
		} );
	} );
};

// Allow others to call function if needed.
window.simpletocLoad = simpletocLoad;

// Check to see if the document is already loaded.
if ( document.readyState === 'complete' || document.readyState !== 'loading' ) {
	simpletocLoad();
} else {
	// Fallback event if the document is not loaded.
	document.addEventListener( 'DOMContentLoaded', () => {
		simpletocLoad();
	} );
}

```
