Reputation: 314
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
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
Reputation: 1077
You can use .toggleClass
instead of addClass removeClass and put your class names in as arguments of the function.
Upvotes: 2