od3n
od3n

Reputation: 314

simplify these jquery?

how can i simplify these jquery code? any idea?

   $('#expand').click(function() {
            $('.bbit-tree-elbow-plus').addClass('bbit-tree-elbow-minus');
            $('.bbit-tree-elbow-minus').removeClass('bbit-tree-elbow-plus');
            $('ul.bbit-tree-node-ct .bbit-tree-elbow-end-plus').addClass('bbit-tree-elbow-end-minus');
            $('ul.bbit-tree-node-ct .bbit-tree-elbow-end-minus').removeClass('bbit-tree-elbow-end-plus')
            if ($("#preview_root").hasClass("bbit-tree-node-collapsed")) {
                $('#preview_root').removeClass('bbit-tree-node-collapsed');
                $('#preview_root').addClass('bbit-tree-node-expanded');
                $('ul.bbit-tree-root .bbit-tree-elbow-end-plus').addClass('bbit-tree-elbow-end-minus');
                $('ul.bbit-tree-root .bbit-tree-elbow-end-minus').removeClass('bbit-tree-elbow-end-plus')
                $('.bbit-tree-node-ct').show();
            }
            $(".bbit-tree-node-ct ul").show();
        });
        $('#collapse').click(function() {
            $('.bbit-tree-elbow-minus').addClass('bbit-tree-elbow-plus');
            $('.bbit-tree-elbow-plus').removeClass('bbit-tree-elbow-minus');
            $('ul.bbit-tree-node-ct .bbit-tree-elbow-end-minus').addClass('bbit-tree-elbow-end-plus');
            $('ul.bbit-tree-node-ct .bbit-tree-elbow-end-plus').removeClass('bbit-tree-elbow-end-minus')
            $(".bbit-tree-node-ct ul").hide('slow');
        });

Upvotes: 0

Views: 97

Answers (2)

Chaddeus
Chaddeus

Reputation: 13376

Yes, use toggleClass as TALLBOY mentioned. Also, consider putting your $('.class') calls into a variable. For example:

var plus = $('.bbit-tree-elbow-plus');

from then on, use it like:

plus.toggleClass('bbit-tree-elbow-minus');

Upvotes: 1

TALLBOY
TALLBOY

Reputation: 1077

You can use .toggleClass instead of addClass removeClass and put your class names in as arguments of the function.

Toggle Class

Upvotes: 2

Related Questions