PageSourceSearch

https://www.lazkao.eus/libraries/cegcore/assets/gplugins/gdropdown/gdropdown.js

js lazkao.eus collected 2026-10-02 11:16:52 UTC 2,402 bytes, 111 lines download raw bytes

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.