1/** 2 * Sollte kein Button übergeben werden, wird ein `.collapse-btn` vorausgesetzt. 3 * Diesem wird der EventListener angehängt. 4 * 5 * @param selector 6 * @param button 7 */ 8class communiceCollapse { 9 constructor(selector, button) { 10 this.selector = selector; 11 this.collapseId = selector.dataset.collapseId; 12 this.button = button || selector.querySelector('.collapse-btn'); 13 this.init() 14 } 15 16 toggle = () => { 17 const collapse = document.querySelector('#' + this.collapseId); 18 this.button.ariaExpanded = !collapse.classList.contains('open'); 19 dkSlideToggle( 20 collapse, 21 400, 22 { 23 classToggleElement: this.selector, 24 classToggle: 'open' 25 } 26 ) 27 } 28 29 init = () => { 30 this.button.addEventListener('click', e => { 31 e.preventDefault(); 32 this.toggle(); 33 }) 34 35 this.button.addEventListener('keydown', e => { 36 if (e.key === ' ') { 37 // Prevent space 38 e.preventDefault(); 39 } else if (e.key === 'Enter') { 40 // If enter is pressed, activate the button 41 e.preventDefault(); 42 this.toggle(e); 43 } 44 }) 45 } 46 47}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.