(function(){
var collapser = function(){ var elem = this; if ( elem.classList.contains('open') ){ var root = elem.dataset.root; var level = elem.dataset.level; document.querySelectorAll('tr[data-root="' + root + '"]').forEach(function(el){ var currentLevel = parseInt(el.dataset.level); if (currentLevel > level) { el.classList.add('collapse'); var parent = el.dataset.parent; document.querySelector('a[data-id="' + parent + '"]').classList.remove('open'); } }); elem.classList.remove('open'); } else { var id = elem.dataset.id; document.querySelectorAll('[data-parent="' + id + '"]').forEach(function(el){ el.classList.remove('collapse'); }); elem.classList.add('open'); } } document.querySelectorAll('.collapser').forEach(function(elem){ elem.addEventListener('click', collapser); });
}).call(this);