Don't use event delegation, use aria-expanded for "is collapsed" check

This commit is contained in:
Matthew Gamble 2017-03-07 09:26:51 +11:00
parent 87bb778572
commit 90f6d98827
No known key found for this signature in database
GPG key ID: B5D06189C3995B3B

View file

@ -61,21 +61,22 @@
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
document.addEventListener('click', function(event) { (function() {
var toggler = event.target; var collapseTogglers = document.querySelectorAll('[data-toggle="collapse"]');
if (toggler.dataset.toggle !== 'collapse') { var toggleTarget;
return; Array.prototype.forEach.call(collapseTogglers, function(toggler) {
} toggler.addEventListener('click', function(event) {
var toggleTarget = document.getElementById(toggler.dataset.target); toggleTarget = document.getElementById(toggler.dataset.target);
if (toggler.getAttribute('aria-expanded') === 'true') {
if (toggleTarget.classList.contains('collapse')) { toggleTarget.classList.add('collapse');
toggleTarget.classList.remove('collapse'); toggler.setAttribute('aria-expanded', false);
toggler.setAttribute('aria-expanded', false); } else {
} else { toggleTarget.classList.remove('collapse');
toggleTarget.classList.add('collapse'); toggler.setAttribute('aria-expanded', true);
toggler.setAttribute('aria-expanded', true); }
} });
}); });
})();
</script> </script>
</body> </body>
</html> </html>