| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 | /*if ($('.tree > ul') && !mytreebranch) {	var mytreebranch = $('.tree').find('li:has(ul)').addClass('parent_li').attr('role', 'treeitem').find(' > span').attr('title', 'Collapse this branch');	$('.tree > ul').attr('role', 'tree').find('ul').attr('role', 'group');	mytreebranch.on('click', function (e) {		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();	});}*//** * A jQuery plugin boilerplate. * Author: Jonathan Nicol @f6design */;(function($) {    // Change this to your plugin name.   var pluginName = 'treeView';    /**   * Plugin object constructor.   * Implements the Revealing Module Pattern.   */  function Plugin(element, options) {	// References to DOM and jQuery versions of element.	var el = element;	var $el = $(element);	options = $.extend({}, $.fn[pluginName].defaults, options);	/**	 * Initialize plugin.	 */	function init() {	  // Add any initialization logic here...var mytreebranch = $('.tree').find('li:has(ul)').addClass('parent_li').attr('role', 'treeitem').find(' > span').attr('title', 'Collapse this branch');	$('.tree > ul').attr('role', 'tree').find('ul').attr('role', 'group');	mytreebranch.on('click', function (e) {		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();	});	  hook('onInit');	}	/**	 * Example Public Method	 */	function fooPublic() {	  // Code goes here...	}	/**	 * Get/set a plugin option.	 * Get usage: $('#el').demoplugin('option', 'key');	 * Set usage: $('#el').demoplugin('option', 'key', value);	 */	function option (key, val) {	  if (val) {		options[key] = val;	  } else {		return options[key];	  }	}	/**	 * Destroy plugin.	 * Usage: $('#el').demoplugin('destroy');	 */	function destroy() {	  // Iterate over each matching element.	  $el.each(function() {		var el = this;		var $el = $(this);		// Add code to restore the element to its original state...		hook('onDestroy');		// Remove Plugin instance from the element.		$el.removeData('plugin_' + pluginName);	  });	}	/**	 * Callback hooks.	 * Usage: In the defaults object specify a callback function:	 * hookName: function() {}	 * Then somewhere in the plugin trigger the callback:	 * hook('hookName');	 */	function hook(hookName) {	  if (options[hookName] !== undefined) {		// Call the user defined function.		// Scope is set to the jQuery element we are operating on.		options[hookName].call(el);	  }	}	// Initialize the plugin instance.	init();	// Expose methods of Plugin we wish to be public.	return {	  option: option,	  destroy: destroy,	  fooPublic: fooPublic	};  }  /**   * Plugin definition.   */  $.fn[pluginName] = function(options) {	// If the first parameter is a string, treat this as a call to	// a public method.	if (typeof arguments[0] === 'string') {	  var methodName = arguments[0];	  var args = Array.prototype.slice.call(arguments, 1);	  var returnVal;	  this.each(function() {		// Check that the element has a plugin instance, and that		// the requested public method exists.		if ($.data(this, 'plugin_' + pluginName) && typeof $.data(this, 'plugin_' + pluginName)[methodName] === 'function') {		  // Call the method of the Plugin instance, and Pass it		  // the supplied arguments.		  returnVal = $.data(this, 'plugin_' + pluginName)[methodName].apply(this, args);		} else {		  throw new Error('Method ' +  methodName + ' does not exist on jQuery.' + pluginName);		}	  });	  if (returnVal !== undefined){		// If the method returned a value, return the value.		return returnVal;	  } else {		// Otherwise, returning 'this' preserves chainability.		return this;	  }	// If the first parameter is an object (options), or was omitted,	// instantiate a new instance of the plugin.	} else if (typeof options === "object" || !options) {	  return this.each(function() {		// Only allow the plugin to be instantiated once.		if (!$.data(this, 'plugin_' + pluginName)) {		  $.data(this, 'plugin_' + pluginName, new Plugin(this, options));		}	  });	}  };  // Default plugin options.  $.fn[pluginName].defaults = {	onInit: function() {},	onDestroy: function() {},	element: $('.tree > ul')  };})(jQuery);$('.tree').treeView({	element: $('.tree > ul')});
 |