1/* 2 * jQuery mmenu navbar addon 3 * mmenu.frebsite.nl 4 * 5 * Copyright (c) Fred Heusschen 6 */ 7 8(function( $ ) { 9 10 var _PLUGIN_ = 'mmenu', 11 _ADDON_ = 'navbars'; 12 13 14 $[ _PLUGIN_ ].addons[ _ADDON_ ] = { 15 16 // setup: fired once per menu 17 setup: function() 18 { 19 var that = this, 20 navs = this.opts[ _ADDON_ ], 21 conf = this.conf[ _ADDON_ ]; 22 23 glbl = $[ _PLUGIN_ ].glbl; 24 25 if ( typeof navs == 'undefined' ) 26 { 27 return; 28 } 29 30 if ( !( navs instanceof Array ) ) 31 { 32 navs = [ navs ]; 33 } 34 35 var _pos = {}; 36 37 $.each( 38 navs, 39 function( n ) 40 { 41 42 var opts = navs[ n ]; 43 44 // Extend shortcut options 45 if ( typeof opts == 'boolean' && opts ) 46 { 47 opts = {}; 48 } 49 if ( typeof opts != 'object' ) 50 { 51 opts = {}; 52 } 53 if ( typeof opts.content == 'undefined' ) 54 { 55 opts.content = [ 'prev', 'title' ]; 56 } 57 if ( !( opts.content instanceof Array ) ) 58 { 59 opts.content = [ opts.content ]; 60 } 61 opts = $.extend( true, {}, that.opts.navbar, opts ); 62 63 var poss = opts.position; 64 if ( poss != 'bottom' ) 65 { 66 poss = 'top'; 67 } 68 if ( !_pos[ poss ] ) 69 { 70 _pos[ poss ] = 0; 71 } 72 _pos[ poss ]++; 73 74 75 // Add markup 76 var $navbar = $( '<div />' ) 77 .addClass( _c.navbar ) 78 .addClass( _c.navbar + '-' + poss ) 79 .addClass( _c.navbar + '-' + poss + '-' + _pos[ poss ] ); 80 81 for ( var c = 0, l = opts.content.length; c < l; c++ ) 82 { 83 var ctnt = $[ _PLUGIN_ ].addons[ _ADDON_ ][ opts.content[ c ] ] || false; 84 if ( ctnt ) 85 { 86 ctnt.call( that, $navbar, opts ); 87 } 88 else 89 { 90 ctnt = opts.content[ c ]; 91 if ( !( ctnt instanceof $ ) ) 92 { 93 ctnt = $( opts.content[ c ] ); 94 } 95 ctnt 96 .each( 97 function() 98 { 99 $navbar.append( $(this) ); 100 } 101 ); 102 } 103 } 104 105 var _content = $navbar.children().not( '.' + _c.btn ).length; 106 if ( _content > 1 ) 107 { 108 $navbar.addClass( _c.navbar + '-' + _content ); 109 } 110 if ( $navbar.children( '.' + _c.btn ).length ) 111 { 112 $navbar.addClass( _c.hasbtns ); 113 } 114 $navbar.prependTo( that.$menu ); 115 } 116 ); 117 118 for ( var p in _pos ) 119 { 120 that.$menu.addClass( _c.hasnavbar + '-' + p + '-' + _pos[ p ] ); 121 } 122 }, 123 124 // add: fired once per page load 125 add: function() 126 { 127 _c = $[ _PLUGIN_ ]._c; 128 _d = $[ _PLUGIN_ ]._d; 129 _e = $[ _PLUGIN_ ]._e; 130 131 _c.add( 'close hasbtns' ); 132 }, 133 134 // clickAnchor: prevents default behavior when clicking an anchor 135 clickAnchor: function( $a, inMenu ) {} 136 }; 137 138 139 // Default options and configuration 140 $[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = { 141 panelTitle : 'Title', 142 panelNext : 'Next', 143 panelPrev : 'Prev' 144 }; 145 146 147 var _c, _d, _e, glbl; 148 149})( jQuery );
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.