diff --git a/src/js/bootstrap-treeview.js b/src/js/bootstrap-treeview.js index 7a82a2eeb..11704dcc7 100644 --- a/src/js/bootstrap-treeview.js +++ b/src/js/bootstrap-treeview.js @@ -315,8 +315,23 @@ }; Tree.prototype.clickHandler = function (event) { - - if (!this.options.enableLinks) event.preventDefault(); + if (!this.options.enableLinks) { + //walk to parents till we find our list item + var bFoundLink = false; + var currentTarget = event.target; + + while (!bFoundLink //Found link + && currentTarget //No target + && !currentTarget.classList.contains('list-group-item') //tree item root + ) { + bFoundLink = currentTarget.nodeName == "A"; + currentTarget = currentTarget.parentElement; + } + if (bFoundLink) { + return; // Handle link + } + event.preventDefault(); //Normal collapse behavior + } var target = $(event.target); var node = this.findNode(target);