1$(function(){ 2 3 var __menuSelector = "#topMenu"; 4 var __menuBarClass = "bar"; 5 var __menuSubClass = "sub"; 6 var __menuActiveClass = "active"; 7 8 var createMenu = function(event){ 9 10 // @event.data.reducedWidth 11 // @event.data.maxMenuWidth 12 13 var $_self = $(__menuSelector), 14 $_list = $_self.children("li:not(." + __menuBarClass + ")"), 15 $_bar = $_self.find("." + __menuBarClass), 16 $_sub = $_self.find("." + __menuSubClass), 17 _enableBar = $_bar.length > 0 ? 1 : 0, 18 _transElements = $_self.hasClass("transfered") ? 1 : 0; 19 20 var $fn_createBar = function(){ 21 22 $_self.append( 23 $("<li/>").addClass(__menuBarClass).append( 24 $("<a/>").attr("href", "#").addClass("openEnder") 25 ).append( 26 $("<ul/>").addClass(__menuSubClass) 27 ) 28 ); 29 30 $_bar = $_self.find("." + __menuBarClass); 31 $_sub = $_bar.find("." + __menuSubClass); 32 33 return _enableBar++; 34 }; 35 36 var $fn_elementsCopy = function(toggle){ 37 38 if(toggle === false){ 39 $_self.addClass("transfered").children("li").each(function(i){ 40 var $_this = $(this); 41 if(!$_this.hasClass(__menuBarClass)){ 42 $_sub.append($_this.clone()); 43 $_this.remove(); 44 } 45 }); 46 47 return _transElements++; 48 49 }else{ 50 $_sub.children("li").each(function(i){ 51 var $_this = $(this); 52 if(!$_this.hasClass(__menuBarClass)){ 53 $_self.append($_this.clone()); 54 $_this.remove(); 55 } 56 }); 57 $_self.removeClass("transfered"); 58 $_bar.remove(); 59 60 $_list = $_self.children("li:not(." + __menuBarClass + ")"); 61 62 return _transElements-- - _enableBar--; 63 } 64 }; 65 66 if(document.body.clientWidth <= event.data.reducedWidth){ 67 !_enableBar && $fn_createBar(); 68 !_transElements && $fn_elementsCopy(false); 69 }else{ 70 if(_transElements){ 71 $fn_elementsCopy(true); 72 } 73 74 if($_self.outerWidth() > event.data.maxMenuWidth){ 75 for (var i = $_list.length - 1; i >= 0; i--) { 76 var $_this = $_list.eq(i); 77 if($_self.outerWidth() <= event.data.maxMenuWidth){ 78 break; 79 }else{ 80 !_enableBar && $fn_createBar(); 81 $_sub.prepend($_this.clone()); 82 $_this.remove(); 83 } 84 }; 85 } 86 } 87 }; 88 89 var openMenu = function(event){ 90 $(this).closest("." + __menuBarClass).toggleClass(__menuActiveClass); 91 event.preventDefault(); 92 }; 93 94 var closeMenu = function(event){ 95 $("#topMenu ." + __menuBarClass).removeClass(__menuActiveClass); 96 }; 97 98 $(window).on("ready resize", { 99 reducedWidth: 1250, 100 maxMenuWidth: 800 101 }, createMenu); 102 103 $(document).on("click", "#topMenu ." + __menuBarClass, function(event){event.stopImmediatePropagation();}); 104 $(document).on("click", "#topMenu .openEnder", openMenu); 105 $(document).on("click", "html", closeMenu); 106 107});
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.