-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathmobile-menu.js
51 lines (43 loc) · 1.36 KB
/
mobile-menu.js
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
$(document).ready(function() {
mobileMenu.bind();
});
window.mobileMenu = {
bind: function() {
$("[data-behavior='open-mobile-menu']").on('click', function(e) {
e.preventDefault();
e.stopPropagation(); // Add this line
// If menu is already open, close it
if ($(".mobile-main-menu").hasClass("open")) {
mobileMenu.close();
return;
}
$(".mobile-main-menu").addClass("open");
$("body").addClass('no-scroll');
mobileMenu.listenForResize();
$(document).on('click.ForMobileMenu', function(event) {
if (!$(event.target).closest('.mobile-main-menu-links-container').length &&
!$(event.target).is('[data-behavior="open-mobile-menu"]') &&
!$(event.target).closest('[data-behavior="open-mobile-menu"]').length) {
mobileMenu.close();
}
});
});
$("[data-behavior='close-mobile-menu']").on('click', function(e) {
e.preventDefault();
mobileMenu.close();
});
},
listenForResize: function() {
$(window).on('resize.ForMobileMenu', function() {
if ($(this).width() > 959) {
mobileMenu.close();
}
});
},
close: function() {
$(".mobile-main-menu").removeClass("open");
$("body").removeClass('no-scroll');
$(window).off('resize.ForMobileMenu');
$(document).off('click.ForMobileMenu');
}
};