78 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
			Vendored
		
	
	
	
| /**
 | |
|  * jQuery Mobile Menu 
 | |
|  * Turn unordered list menu into dropdown select menu
 | |
|  * version 1.1(27-JULY-2013)
 | |
|  * 
 | |
|  * Built on top of the jQuery library
 | |
|  *   http://jquery.com
 | |
|  * 
 | |
|  * Documentation
 | |
|  * 	 http://github.com/mambows/mobilemenu
 | |
|  */
 | |
| (function($){
 | |
| $.fn.mobileMenu = function(options) {
 | |
| 
 | |
| 	var defaults = {
 | |
| 			defaultText: 'Navigate to...',
 | |
| 			className: 'select-menu',
 | |
| 			subMenuClass: 'sub-menu',
 | |
| 			subMenuDash: '–'
 | |
| 		},
 | |
| 		settings = $.extend( defaults, options ),
 | |
| 		el = $(this);
 | |
| 
 | |
| 	this.each(function(){
 | |
| 		var $el = $(this),
 | |
| 			$select_menu;
 | |
| 
 | |
| 		// ad class to submenu list
 | |
| 		$el.find('ul').addClass(settings.subMenuClass);
 | |
| 
 | |
| 		// Create base menu
 | |
| 		var $select_menu = $('<select />',{
 | |
| 			'class' : settings.className + ' ' + el.get(0).className
 | |
| 		}).insertAfter( $el );
 | |
| 
 | |
| 		// Create default option
 | |
| 		$('<option />', {
 | |
| 			"value"		: '#',
 | |
| 			"text"		: settings.defaultText
 | |
| 		}).appendTo( $select_menu );
 | |
| 
 | |
| 		// Create select option from menu
 | |
| 		$el.find('a').each(function(){
 | |
| 			var $this 	= $(this),
 | |
| 				optText	= ' ' + $this.text(),
 | |
| 				optSub	= $this.parents( '.' + settings.subMenuClass ),
 | |
| 				len		= optSub.length,
 | |
| 				dash;
 | |
| 
 | |
| 			// if menu has sub menu
 | |
| 			if( $this.parents('ul').hasClass( settings.subMenuClass ) ) {
 | |
| 				dash = Array( len+1 ).join( settings.subMenuDash );
 | |
| 				optText = dash + optText;
 | |
| 			}
 | |
| 
 | |
| 			// Now build menu and append it
 | |
| 			$('<option />', {
 | |
| 				"value"	: this.href,
 | |
| 				"html"	: optText,
 | |
| 				"selected" : (this.href == window.location.href)
 | |
| 			}).appendTo( $select_menu );
 | |
| 
 | |
| 		}); // End el.find('a').each
 | |
| 
 | |
| 		// Change event on select element
 | |
| 		$select_menu.change(function(){
 | |
| 			var locations = $(this).val();
 | |
| 			if( locations !== '#' ) {
 | |
| 				window.location.href = $(this).val();
 | |
| 			};
 | |
| 		});
 | |
| 
 | |
| 	}); // End this.each
 | |
| 
 | |
| 	return this;
 | |
| 
 | |
| };
 | |
| })(jQuery); | 
