jquery-mobile-menu-plugin
Version:
The best jQuery plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and webapp.
73 lines (57 loc) • 1.44 kB
JavaScript
/*
* jQuery mmenu navbar addon prev content
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'navbars',
_CONTENT_ = 'prev';
$[ _PLUGIN_ ].addons[ _ADDON_ ][ _CONTENT_ ] = function( $navbar, opts )
{
// Get vars
var _c = $[ _PLUGIN_ ]._c;
// Add content
var $prev = $('<a class="' + _c.prev + ' ' + _c.btn + '" href="#" />').appendTo( $navbar );
this.bind( 'init',
function( $panl )
{
$panl
.removeClass( _c.hasnavbar )
.children( '.' + _c.navbar )
.addClass( _c.hidden );
}
);
// Update
var _url, _txt;
var update = function( $panel )
{
$panel = $panel || this.$pnls.children( '.' + _c.current );
if ( $panel.hasClass( _c.vertical ) )
{
return;
}
var $orgn = $panel.find( '.' + this.conf.classNames[ _ADDON_ ].panelPrev );
if ( !$orgn.length )
{
$orgn = $panel.children( '.' + _c.navbar ).children( '.' + _c.prev );
}
_url = $orgn.attr( 'href' );
_txt = $orgn.html();
$prev[ _url ? 'attr' : 'removeAttr' ]( 'href', _url );
$prev[ _url || _txt ? 'removeClass' : 'addClass' ]( _c.hidden );
$prev.html( _txt );
};
this.bind( 'openPanel', update );
this.bind( 'init',
function()
{
update.call( this );
}
);
// Detract content count
return -1;
};
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ].panelPrev = 'Prev';
})( jQuery );