1jQuery.gdropdown = { 2 3}; 4 5(function($){ 6 $.fn.gdropdown = function(options, params){ 7 if(this.length > 0){ 8 if($.type(params) === 'undefined' && $.type(options) === 'object'){ 9 params = options; 10 } 11 12 if($.type(options) === 'undefined' || $.type(options) === 'object'){ 13 params = $.extend(true, {}, $.gdropdown, params); 14 return this.each(function(){ 15 if(!$(this).data('gdropdown')){ 16 $(this).data('gdropdown', new Gdropdown(this, params)); 17 } 18 }); 19 } 20 21 if($.type(options) === 'string'){ 22 params = $.extend(true, {}, $.gdropdown, params); 23 24 var dropdown = $(this).data('gdropdown'); 25 26 switch (options){ 27 case 'get': 28 return dropdown.get(); 29 case 'show': 30 return dropdown.show(); 31 case 'hide': 32 return dropdown.hide(); 33 case 'toggle': 34 return dropdown.toggle(); 35 } 36 } 37 } 38 } 39 40 var Gdropdown = function(elem, params){ 41 this.element = elem; 42 this.settings = params; 43 44 this.shown = false; 45 46 this.init(); 47 }; 48 49 Gdropdown.prototype = { 50 init: function(){ 51 var dropdown = this; 52 $(dropdown.element).addClass('gdropdown'); 53 $(dropdown.element).css({ 54 'background-clip' : 'padding-box', 55 'display' : 'none', 56 'float' : 'left', 57 'left' : '0', 58 'list-style' : 'outside none none', 59 'position' : 'absolute', 60 'top' : '100%', 61 'z-index' : '1000', 62 }); 63 64 $(dropdown.element).find('a').on('click', function(){ 65 dropdown.hide(); 66 }); 67 68 $(document).on('mousedown', function(e){ 69 if(dropdown.shown){ 70 if($(e.target).get(0) != $(dropdown.element).get(0) && !$.contains($(dropdown.element).get(0), $(e.target).get(0))){ 71 dropdown.hide(); 72 } 73 } 74 }); 75 }, 76 77 get: function(){ 78 var dropdown = this; 79 return dropdown; 80 }, 81 82 show: function(){ 83 var dropdown = this; 84 $(dropdown.element).trigger('show.gdropdown'); 85 $(dropdown.element).show(); 86 $(dropdown.element).trigger('shown.gdropdown'); 87 dropdown.shown = true; 88 }, 89 90 hide: function(){ 91 var dropdown = this; 92 $(dropdown.element).trigger('hide.gdropdown'); 93 $(dropdown.element).hide(); 94 $(dropdown.element).trigger('hidden.gdropdown'); 95 dropdown.shown = false; 96 }, 97 98 toggle: function(){ 99 var dropdown = this; 100 101 if(dropdown.shown){ 102 dropdown.hide(); 103 }else{ 104 dropdown.show(); 105 } 106 107 //$(dropdown.element).toggle(); 108 }, 109 110 }; 111}(jQuery));
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.