12345678910111213141516171819202122232425262728293031323334353637 |
- (function($) {
- var CLASSES = $.treeview.classes;
- var proxied = $.fn.treeview;
- $.fn.treeview = function(settings) {
- settings = $.extend({}, settings);
- if (settings.add) {
- return this.trigger("add", [settings.add]);
- }
- if (settings.remove) {
- return this.trigger("remove", [settings.remove]);
- }
- return proxied.apply(this, arguments).bind("add", function(event, branches) {
- $(branches).prev()
- .removeClass(CLASSES.last)
- .removeClass(CLASSES.lastCollapsable)
- .removeClass(CLASSES.lastExpandable)
- .find(">.hitarea")
- .removeClass(CLASSES.lastCollapsableHitarea)
- .removeClass(CLASSES.lastExpandableHitarea);
- $(branches).find("li").addBack().prepareBranches(settings).applyClasses(settings, $(this).data("toggler"));
- }).bind("remove", function(event, branches) {
- var prev = $(branches).prev();
- var parent = $(branches).parent();
- $(branches).remove();
- prev.filter(":last-child").addClass(CLASSES.last)
- .filter("." + CLASSES.expandable).replaceClass(CLASSES.last, CLASSES.lastExpandable).end()
- .find(">.hitarea").replaceClass(CLASSES.expandableHitarea, CLASSES.lastExpandableHitarea).end()
- .filter("." + CLASSES.collapsable).replaceClass(CLASSES.last, CLASSES.lastCollapsable).end()
- .find(">.hitarea").replaceClass(CLASSES.collapsableHitarea, CLASSES.lastCollapsableHitarea);
- if (parent.is(":not(:has(>))") && parent[0] != this) {
- parent.parent().removeClass(CLASSES.collapsable).removeClass(CLASSES.expandable);
- parent.siblings(".hitarea").addBack().remove();
- }
- });
- };
- })(jQuery);
|