Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2015, 08:02
Новичок на форуме
Отправить личное сообщение для waterfly Посмотреть профиль Найти все сообщения от waterfly
 
Регистрация: 05.07.2015
Сообщений: 5

Реализация выпадающего меню
Добрый день. Столкнулся с проблемой при реализации выпадающего меню.
Суть проблемы такова. При наведении на родительский пункт меню, по средствам CSS, раскрывается подменю. А при наведении курсора на ссылки в подменю, начинают подтягиваться материалы (ajax) в div в этом же подменю. Как реализовать загрузку материалов в первый пункт подменю уже при наведении курсора на родительский пункт меню.

$(".js-dropnav-active li.dropnav-menu__item").hover(function(){
	$(".js-dropnav-active li.dropnav-menu__item").removeClass("dropnav-menu__active");
    $(this).addClass("dropnav-menu__active");
	var link = $(this).attr('id');
	var data = 'data='+link;
	$.ajax({
		url: 'components/drop-menu/items.php',
		type: 'POST',
		data: data,
		dataType: 'html',
		success: function(result){
			$("#ajax-"+link).html(result);
		},
		beforeSend: function(){
			var imgProc = '<div class="loading"></div>';
			$("#ajax-"+link).html(imgProc);
		}
	});
	return false;
});
});

<ul class="nav-bar">
<li class="nav-bar__item dropnav js-dropnav">
<a href="#">Родительский пункт меню</a>

<ul class="dropnav-menu">
<li id="pc" class="dropnav-menu__item dropnav-menu__active">
<a href="#">Первый пункт подменю</a>
<ul class="dropnav-submenu">
<div id="ajax-pc"></div>
</ul>
</li>

<li id="pr" class="dropnav-menu__item ">
<a href="#">Второй пункт подменю</a>
<ul class="dropnav-submenu">
<div id="ajax-pr"></div>
</ul>
</li>

</ul>

</li>
  </ul>
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2015, 10:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

waterfly,
вариант добавить
$(".js-dropnav-active .nav-bar__item").mouseenter(function() {
    $("li.dropnav-menu__item:first", this).mouseenter();
})
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2015, 11:06
Новичок на форуме
Отправить личное сообщение для waterfly Посмотреть профиль Найти все сообщения от waterfly
 
Регистрация: 05.07.2015
Сообщений: 5

Сделал по Вашему совету
$(document).ready(function(){

$(".js-dropnav-active li.dropnav-menu__item").hover(function(){
    $("li.dropnav-menu__item:first", this).mouseenter();
	$(".js-dropnav-active li.dropnav-menu__item").removeClass("dropnav-menu__active");
    $(this).addClass("dropnav-menu__active");
	
	var link = $(this).attr('id');
	var data = 'data='+link;
	$.ajax({
		url: 'components/drop-menu/items.php',
		type: 'POST',
		data: data,
		dataType: 'html',
		success: function(result){
			$("#games-"+link).html(result);
		},
		beforeSend: function(){
			var imgProc = '<div class="loading"></div>';
			$("#games-"+link).html(imgProc);
		}
	});
	return false;
});

});


Теперь получаю такой эфект пошагово:
1. При наведении на родителя запрос не передается.
2. При наведении на первый пункт меню запрос уходит/приходит.
3. Возвращаю курсор на родителя - запрос уходит/приходит.
Ответить с цитированием
  #4 (permalink)  
Старый 05.07.2015, 11:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

waterfly,
добавить а не вставить
$(function() {
         $(".js-dropnav-active li.dropnav-menu__item").hover(function(event) {
             $(".js-dropnav-active li.dropnav-menu__item").removeClass("dropnav-menu__active");
             $(this).addClass("dropnav-menu__active");
             var link = $(this).attr('id');
             var data = 'data=' + link;
             $.ajax({
                 url: 'components/drop-menu/items.php',
                 type: 'POST',
                 data: data,
                 dataType: 'html',
                 success: function(result) {
                     $("#ajax-" + link).html(result);
                 },
                 beforeSend: function() {
                     var imgProc = '<div class="loading"></div>';
                     $("#ajax-" + link).html(imgProc);
                 }
             });
             return false;
         });
         $(".js-dropnav-active .nav-bar__item").mouseenter(function() {
             $("li.dropnav-menu__item:first", this).mouseenter();
         })

     });
Ответить с цитированием
  #5 (permalink)  
Старый 05.07.2015, 12:05
Новичок на форуме
Отправить личное сообщение для waterfly Посмотреть профиль Найти все сообщения от waterfly
 
Регистрация: 05.07.2015
Сообщений: 5

Чем дальше, тем запутанее)
теперь...
1. Родитель - раскрывается меню. (запроса - нет)
2. Подпункт №1 - уходит один запрос/ответ.
3. Подпункт №2 - уходят два запроса/ответа ( подпункта №2 и №3 ).
3. Подпункт №3 - уходят два запроса/ответа ( подпункта №3 и №4 ).
5. Возвращаемся на родителя уходит запрос/ответ №1.
Ответить с цитированием
  #6 (permalink)  
Старый 05.07.2015, 12:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

waterfly,
может вам ограничение сделать - посылать только 1 запрос а не при каждом наведении.
Ответить с цитированием
  #7 (permalink)  
Старый 05.07.2015, 12:40
Новичок на форуме
Отправить личное сообщение для waterfly Посмотреть профиль Найти все сообщения от waterfly
 
Регистрация: 05.07.2015
Сообщений: 5

Сообщение от рони Посмотреть сообщение
waterfly,
может вам ограничение сделать - посылать только 1 запрос а не при каждом наведении.
Уже думал над этим но мои знания js пока не позволяют а если и позволят будет две страницы кода.
Не решает проблемы с родителем.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесконечноуровневое меню на CSS ruslan_mart Ваши сайты и скрипты 5 12.01.2015 20:59
Помогите с анимацией выпадающего меню strengerst Элементы интерфейса 13 31.07.2013 12:27
Переход между элементами выпадающего меню Digan jQuery 3 10.10.2012 21:03
Скрипт выпадающего меню vadimon Элементы интерфейса 3 12.09.2012 23:06
Сокращение списка выпадающего меню. Predatorbbs Элементы интерфейса 3 22.11.2010 15:23