forked from olton/metroui
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdropdown.js
More file actions
105 lines (88 loc) · 3.16 KB
/
dropdown.js
File metadata and controls
105 lines (88 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
(function($){
$.fn.Dropdown = function( options ){
var defaults = {
};
var $this = $(this)
;
var clearDropdown = function(){
$(".dropdown-menu").each(function(){
if ( $(this).css('position') == 'static' ) return;
$(this).slideUp('fast', function(){});
$(this).parent().removeClass("active");
});
};
var initSelectors = function(selectors){
selectors.off("click.dropdown");
selectors.on('click.dropdown', function(e){
//e.stopPropagation();
//$("[data-role=dropdown]").removeClass("active");
if($(e.originalEvent.target).parent().is("[data-role]")) e.stopPropagation();
clearDropdown();
$(this).parents("ul").css("overflow", "visible");
var $m = $(this).children(".dropdown-menu, .sidebar-dropdown-menu");
$(this).parents("ul").children(".dropdown").children(".dropdown-menu, .sidebar-dropdown-menu").each(function(){
if(!$(this).hasClass("keep-opened") && !$m.hasClass("keep-opened")) {
$(this).slideUp('fast');
$(this).parents("li").removeClass("active");
}
});
if ($m.css('display') == "block") {
$m.slideUp('fast');
$(this).removeClass("active");
} else {
$m.slideDown('fast');
$(this).addClass("active");
}
}).on("mouseleave", function(){
//$(this).children(".dropdown-menu").hide();
});
$('html').on("click", function(e){
if(e.originalEvent && $(e.originalEvent.target).parents('[data-role="dropdown"]').length == 0)
clearDropdown();
});
};
return this.each(function(){
if ( options ) {
$.extend(defaults, options);
}
initSelectors($this);
});
};
$(function () {
$('[data-role="dropdown"]').each(function () {
$(this).Dropdown();
});
});
})(window.jQuery);
(function($){
$.fn.PullDown = function( options ){
var defaults = {
};
var $this = $(this)
;
var initSelectors = function(selectors){
selectors.on('click', function(e){
e.preventDefault();
var $m = $this.parent().children("ul");
//console.log($m);
if ($m.css('display') == "block") {
$m.slideUp('fast');
} else {
$m.slideDown('fast');
}
//$(this).toggleClass("active");
});
};
return this.each(function(){
if ( options ) {
$.extend(defaults, options);
}
initSelectors($this);
});
};
$(function () {
$('.pull-menu, .menu-pull').each(function () {
$(this).PullDown();
});
});
})(window.jQuery);