1/** 2 * WordPress JQuery Mobile Menu 3 * 4 * Inspired from JQuery Simple MobileMenu : https://github.com/Position2/jQuery-Simple-MobileMen 5 * 6 */ 7 8(function ($) { 9 var defaults = { 10 "toggleMenuId" : "toggle-menu", 11 "toggleMenuContainerId" : "toggle-menu-container", 12 "toggleMenuContainerClass" : "toggle-menu-container-class", 13 "wrapperClass" : "wp_mm_wrapper", 14 "submenuClass" : "sub-menu", 15 "bodyOverlayClass" : "body_overlay" 16 }; 17 $.fn.droSlidingMenu = function (options) { 18 if ($(this).length === 0) { return this ;} 19 var droMenu = {}, ds = $(this); 20 var init = function () { 21 droMenu.settings = $.extend({}, defaults, options); 22 createWrappers(); 23 createBackButton(); 24 createRightNavButton(); 25 }, 26 createWrappers = function () { 27 droMenu.toggleControl = $("<div/>", {"id": droMenu.settings.toggleMenuId, 28 "html": "<span></span><span></span><span></span><span></span>"}), 29 droMenu.toggleControlContainer = $("<div/>",{"id": droMenu.settings.toggleMenuContainerId, 30 "class": droMenu.settings.toggleMenuContainerClass}), 31 droMenu.wrapperControl = $("<div/>", {"class": droMenu.settings.wrapperClass}); 32 droMenu.bodyOverlay = $("<div/>", {"class": droMenu.settings.bodyOverlayClass}); 33 ds.appendTo(droMenu.wrapperControl); 34 droMenu.toggleControl.prependTo(droMenu.toggleControlContainer); 35 droMenu.toggleControlContainer.prependTo($("#masthead")); 36 //droMenu.bodyOverlay.add(droMenu.wrapperControl).appendTo($("body")); 37 droMenu.bodyOverlay.add(droMenu.wrapperControl).appendTo($("#fullcontainer")); 38 }, 39 createRightNavButton = function () { 40 droMenu.wrapperControl.find("li.menu-item-has-children").each(function () { 41 var rightNavButton = $("<span/>", {"class": "ion-ios-arrow-forward forward"}); 42 rightNavButton.prependTo($(this)); 43 }); 44 }, 45 createBackButton = function () { 46 droMenu.wrapperControl.find("ul." + droMenu.settings.submenuClass).each(function () { 47 var dis = $(this), 48 disPar = dis.closest("li"), 49 disA = disPar.find(">a"), 50 disIconBack = $("<span/>", {"class": "ion-ios-arrow-back left"}), 51 disBack = $("<li/>", {"class": "back", 52 "html": "<a href='" + disA.attr('href') + "'>" + disA.text() + "</a>"}); 53 disIconBack.prependTo(disBack); 54 disBack.prependTo(dis); 55 }); 56 }, 57 openCurrentPage = function(){ 58 /** 59 * Syn the mobile menu with the current page 60 **/ 61 droMenu.wrapperControl.find("li.current-page-parent , li.current-menu-parent, li.current-menu-ancestor") 62 .addClass("active").siblings().removeClass("active"); 63 }, 64 toggleMobileMenu = function () { 65 $("#" + droMenu.settings.toggleMenuId).toggleClass("open"); 66 $("." + droMenu.settings.bodyOverlayClass).toggleClass("enabled"); 67 /* 68 * keep the current item opened 69 * to back to the home item add : .find("li.active").removeClass("active") 70 */ 71 $("." + droMenu.settings.wrapperClass).toggleClass("active"); 72 //$("body").toggleClass("wp_mm_enable"); 73 $("#fullcontainer").toggleClass("wp_mm_enable"); 74 }, 75 showSubMenu = function (e) { 76 e.preventDefault(); 77 $("." + droMenu.settings.wrapperClass).scrollTop(0); 78 $(this).parent().addClass("active").siblings().removeClass("active"); 79 }, 80 goBack = function (e) { 81 e.preventDefault(); 82 $(this).closest("ul." + droMenu.settings.submenuClass).parent().removeClass("active"); 83 $(this).closest("ul." + droMenu.settings.submenuClass).parent().removeClass("classactive"); 84 }; 85 86 init(); 87 openCurrentPage(); 88 droMenu.toggleControl.click(toggleMobileMenu); 89 droMenu.bodyOverlay.click(toggleMobileMenu); 90 droMenu.wrapperControl.find("li.menu-item-has-children > span").click(showSubMenu); 91 droMenu.wrapperControl.find("li.back > span").click(goBack); 92 }; 93})(jQuery); 94 95
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.