40 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| /* https://github.com/jzaefferer/jquery-treeview/blob/master/jquery.treeview.edit.js */
 | |
| /* License: MIT. */
 | |
| (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").andSelf().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").andSelf().remove();
 | |
| 			}
 | |
| 		});
 | |
| 	};
 | |
| 	
 | |
| })(jQuery);
 |