UNPKG

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.

7 lines 1.97 kB
/* * jQuery mmenu sectionIndexer addon * mmenu.frebsite.nl * * Copyright (c) Fred Heusschen */ !function(e){var a="mmenu",r="sectionIndexer";e[a].addons[r]={setup:function(){var i=this,h=this.opts[r];this.conf[r];d=e[a].glbl,"boolean"==typeof h&&(h={add:h}),"object"!=typeof h&&(h={}),h=this.opts[r]=e.extend(!0,{},e[a].defaults[r],h),this.bind("init",function(a){if(h.add){var r;switch(h.addTo){case"panels":r=a;break;default:r=e(h.addTo,this.$menu).filter("."+n.panel)}r.find("."+n.divider).closest("."+n.panel).addClass(n.hasindexer)}if(!this.$indexer&&this.$pnls.children("."+n.hasindexer).length){this.$indexer=e('<div class="'+n.indexer+'" />').prependTo(this.$pnls).append('<a href="#a">a</a><a href="#b">b</a><a href="#c">c</a><a href="#d">d</a><a href="#e">e</a><a href="#f">f</a><a href="#g">g</a><a href="#h">h</a><a href="#i">i</a><a href="#j">j</a><a href="#k">k</a><a href="#l">l</a><a href="#m">m</a><a href="#n">n</a><a href="#o">o</a><a href="#p">p</a><a href="#q">q</a><a href="#r">r</a><a href="#s">s</a><a href="#t">t</a><a href="#u">u</a><a href="#v">v</a><a href="#w">w</a><a href="#x">x</a><a href="#y">y</a><a href="#z">z</a>'),this.$indexer.children().on(s.mouseover+"-sectionindexer "+n.touchstart+"-sectionindexer",function(a){var r=e(this).attr("href").slice(1),s=i.$pnls.children("."+n.current),d=s.find("."+n.listview),h=!1,t=s.scrollTop();s.scrollTop(0),d.children("."+n.divider).not("."+n.hidden).each(function(){h===!1&&r==e(this).text().slice(0,1).toLowerCase()&&(h=e(this).position().top)}),s.scrollTop(h!==!1?h:t)});var d=function(e){i.$menu[(e.hasClass(n.hasindexer)?"add":"remove")+"Class"](n.hasindexer)};this.bind("openPanel",d),d.call(this,this.$pnls.children("."+n.current))}})},add:function(){n=e[a]._c,i=e[a]._d,s=e[a]._e,n.add("indexer hasindexer"),s.add("mouseover touchstart")},clickAnchor:function(e,a){return e.parent().is("."+n.indexer)?!0:void 0}},e[a].defaults[r]={add:!1,addTo:"panels"};var n,i,s,d}(jQuery);