Ограничение действия return false

155
06 апреля 2018, 18:12

Этот код обрабатывает клик по элементам на сайте (меню первого уровня), в результате которого появляется новый блок (меню второго уровня, переход по ссылке остановлен return false, чтобы было видно меню второго уровня). Также, по клику вне этого всплывшего блока, он закрывается. Но дело в том, что в нём (этом появляющемся блоке) тоже есть ссылки(пункты меню второго уровня), и нужно, чтобы переход по ним работал. А второй клик по пунктам меню первого уровня тоже приводил к переходу по ссылке.

$(function() { 
			$(document).on('click', '.overlay', function(e) { 
				$('.header__bottom-hover-menu.active, .header__top, .header__bottom').removeClass('active'); 
				$('.header__nav-item > a.active').removeClass('active'); 
				$('.overlay').removeClass('active'); 
			}); 
			$(document).mouseup(function (e) { 
				if (window.innerWidth > 1150) { 
					var container = $(".header__bottom-hover-menu.active"); 
					if (container.has(e.target).length === 0){ 
						container.removeClass('active'); 
						$('.overlay').removeClass('active'); 
					} 
				} 
			}); 
			$(document).on('click', '.header__nav-item', function(e) { 
				if (window.innerWidth > 1150) { 
					console.log("CLICK2"); 
					$('.header__bottom-hover-menu.active, .header__top, .header__bottom').removeClass('active'); 
					// $('.overlay').removeClass('active'); 
					$('.header__nav-item > a.active').removeClass('active'); 
 
					$('.header__hover-list-item.active').removeClass('active'); 
					$('.header__hover-tab.active').removeClass('active'); 
 
					$('.header__hover-list-item[data-tab="1"]').addClass('active'); 
					$('.header__hover-tab[data-tab="1"]').addClass('active'); 
				} 
 
				return false; 
			}, function() { 
				if (window.innerWidth > 1150) { 
					let overlay = $('.overlay'); 
 
					$('.header__bottom-hover-menu.active, .header__top, .header__bottom').removeClass('active'); 
					$('.header__nav-item > a.active').removeClass('active'); 
					overlay.removeClass('active'); 
 
					if ($(this).find('.header__bottom-hover-menu').length > 0) { 
						$(this).find('a.submenu').addClass('active'); 
						$(this).find('.header__bottom-hover-menu').addClass('active'); 
						$('.header__top, .header__bottom').addClass('active'); 
						overlay.addClass('active'); 
					} 
				} 
				return false; 
			}); 
		});

READ ALSO
помогите с созданием расширения для amazon

помогите с созданием расширения для amazon

Всем привет, у меня стоит задача сделать расширения для Amazon, Задание

174
Как определить, есть у элемента скролл или нет?

Как определить, есть у элемента скролл или нет?

Есть всплывающее окно у него на широком мониторе нет скролла, а на узком есть скролл

144
как обратиться к элементу и получить от

как обратиться к элементу и получить от

Подскажите, как обратиться к этому элементу,а потом стянуть и проверить его свойства? Тест пишу с protractorБыла такая идея, но это не работает

157