Javascript.RU

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

Использование live и each
Есть код, который выводит и подгружает выпадающее меню.

$(document).ready(function(){
 
 $.each($('#topmenu li'), function() {
        var id = $(this).attr('id');
		var ul_id = '"#'+id+'"'; 
        var li = $(this);
		var myCookie = $.cookie(id);
		alert(myCookie);
	  		if(myCookie == "show") {
                $.ajax({
                    url: 'ajax/menu.html',
                    beforeSend: function(){
                         li.addClass('loading');
                    },
                    success: function(data){
                         li.append(data);
                         li.find(ul_id).stop(true, true);
                         li.find(ul_id).show();
						 $.cookie(id, 'show'); 
                         li.removeClass('loading');
					  
                    }
                });

				 
			}
 	 
	});
	
	 

    $('#topmenu li').live('click', function(e){
			   
                var id = $(this).attr('id');
				var ul_id = '"#'+id+'"'; 
                var li = $(this);
				if ($(this).children('ul').length == 0) { 
                $.ajax({
                    url: 'ajax/menu.html',
                    beforeSend: function(){
                         li.addClass('loading');
                    },
                    success: function(data){
                         li.append(data);
                         li.find(ul_id).stop(true, true);
                         li.find(ul_id).show();
						 $.cookie(id, 'show'); 
                         li.removeClass('loading');
						 
						 var myCookie = $.cookie(id);
						 alert(myCookie);
                    }
                });
				} 
				else if (li.find(ul_id).is(':visible')) {
					li.find(ul_id).toggle();
					  
					if($(this).parent().parent().attr("class") == "drop") {
						second_id = $(this).attr('id');
						$.cookie(second_id, 'hide_second'); 
						var myCookie_second = $.cookie(second_id);
						alert(myCookie_second); 
					} else {
					$.cookie(id, 'hide');
					var myCookie = $.cookie(id);
					alert(myCookie);
					}
				}
				else {
					li.find(ul_id).toggle(); 
					
					if($(this).parent().parent().attr("class") == "drop") {
						second_id = $(this).attr('id');
						$.cookie(second_id, 'show_second'); 
						var myCookie_second = $.cookie(second_id);
						alert(myCookie_second);
					} else {
					$.cookie(id, 'show');
					var myCookie = $.cookie(id);
					alert(myCookie);
					}
					 
				} 
				
 
			
            $(this).addClass("active");
   
		},
        function() {            
            $(this).find('ul').slideUp('fast');            
            $(this).removeClass("active");
        }
    );
	
 
	
});


<ul id="topmenu">
            <li class="drop" id="menu1"><a href="#" title="Меню 1">Меню 1</a></li>
            <li class="drop" id="menu2"><a href="#" title="Меню 2">Меню 2</a></li>
            <li class="drop" id="menu3"><a href="#" title="Меню 3">Меню 3</a></li>
        </ul>

Файл с подменю:
<ul class="dop" id="menu1">
    <li id="menu7" ><a href="#" title="Элемент 1">Элемент 1</a>
	<ul id="menu7">
    <li><a href="#" title="Элемент 1">Элемент 1</a></li>
    <li><a href="#" title="Элемент 2">Элемент 2</a></li>
    <li><a href="#" title="Элемент 3">Элемент 3</a></li>
	</ul> 	
	</li>
    <li><a href="#" title="Элемент 2">Элемент 2</a></li>
    <li><a href="#" title="Элемент 3">Элемент 3</a></li>
</ul>
<ul id="menu2">
    <li><a href="#" title="Элемент 1">Элемент 4</a></li>
    <li><a href="#" title="Элемент 2">Элемент 5</a></li>
    <li><a href="#" title="Элемент 3">Элемент 6</a></li>
</ul>
<ul id="menu3">
    <li><a href="#" title="Элемент 1">Элемент 7</a></li>
    <li><a href="#" title="Элемент 2">Элемент 8</a></li>
    <li><a href="#" title="Элемент 3">Элемент 9</a></li>
</ul>


Первый each разбирает первый список. А как быть с загруженными вложенными списками, у которых тоже есть свои подменю? Live each для него не действует?
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2012, 19:29
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

fofan,
Проблема с автоскрытием элементов навигации пост 21
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Событие live byzyk jQuery 6 03.08.2012 13:18
live и stopPropagation AlleeX jQuery 3 14.12.2011 20:58
Не работает кнопка через live Dorian_bs Общие вопросы Javascript 7 04.12.2011 01:29
не работает live() Enxiro jQuery 1 03.07.2011 21:13
jQuery live функция immeasurability jQuery 1 16.05.2011 11:15