Advertisement
Guest User

Awesome Slide MenuPanel

a guest
Aug 8th, 2013
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function SlideMenu( $base, $container, side, type, theme ){
  2.     var events, panel, e,
  3.         container_id = "#" + $($container).attr("id") + " ";
  4.     function getEvents( $b, container_id ){
  5.         var i, j, type, nodes = [], s, oEvents, eventAttachedNode, func;
  6.         for ( i in $.cache ) {
  7.             if ( typeof $.cache[i].events == 'object' ) {
  8.                 eventAttachedNode = $.cache[i].handle.elem;
  9.                 for ( type in $.cache[i].events ) {
  10.                     /* Ignore live event object - live events are listed as normal events as well */
  11.                     if ( type == 'live' ) {
  12.                         continue;
  13.                     }
  14.  
  15.                     oEvents = $.cache[i].events[type];
  16.  
  17.                     for ( j in oEvents ) {
  18.                         if ( typeof oEvents[j].selector != 'undefined' && oEvents[j].selector !== null ) {
  19.                             s = oEvents[j].selector.replace(container_id, '');
  20.                             if ( $( s, $base ).length > 0 ){
  21.                                 if ( typeof oEvents[j].origHandler != 'undefined' ) {
  22.                                     func = oEvents[j].origHandler;
  23.                                 } else if ( typeof oEvents[j].handler != 'undefined' ) {
  24.                                     func = oEvents[j].handler;
  25.                                 }
  26.                                 nodes.push( {
  27.                                     selector: s,
  28.                                     handler: func,
  29.                                     type: type
  30.                                 } );
  31.                             }
  32.                         }
  33.                     }
  34.                 }
  35.             }
  36.         }
  37.         return nodes;
  38.     }
  39.     events = getEvents( $base, container_id );
  40.    
  41.     var page = $base.parents('[data-role="page"]:first');
  42.     panel = $base.parent().detach();
  43.     panel.attr({
  44.       "data-role":"panel",
  45.       "data-position": side || "left",
  46.       "data-display": type || "push",
  47.       "data-theme": theme || "a",
  48.       "id": page.attr("dsid") + "_myCoolestNavPanel"
  49.     });
  50.     panel.prependTo(page);
  51.  
  52.     for (var i = 0; i < events.length; i++) {
  53.         e = events[i];
  54.         $(e.selector, $base).on(e.type, e.handler);
  55.     }
  56.     panel.parent().trigger( "create" );
  57.     return panel;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement