Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 739
  • Last Modified:

Bootstrap JS Tree Nav

How can I get this to work so when you click a parent link, it closes all other parents.

I would need all parents collapsed on load and then if you open a parent item, and then click a different parent item, it closes the one you just had open.

here is a jsfiddle: http://jsfiddle.net/umutc1/eyf9q87c/

Thank you!
0
Lanmarkian
Asked:
Lanmarkian
1 Solution
 
Hans LangerCommented:
Maybe you can close them all before open the current node, something like:

 
$(function () {
    $('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch');
    $('.tree li.parent_li > span').on('click', function (e) {
        $(this).closest('ul').find('span').each(function(){
           $(this).parent('li.parent_li').find(' > ul > li').hide('fast');
            $(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign'); 
        })
            var children = $(this).parent('li.parent_li').find(' > ul > li');
        if (children.is(":visible")) {
            children.hide('fast');
            $(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign');
        } else {
            children.show('fast');
            $(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign');
        }
        e.stopPropagation();
    });
});

Open in new window

0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now