Javascript.RU

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

Рекурсия меню jquery
//Загрузка категорий
	function load(post){
			$.ajax({
			  type: "POST",
			  url: "index.php?option=com_addvirtue&view=ajax&task=category&tmpl=component&format=raw",
			async: false,
			  data: post,
			  success: function(html){
			 	out=html;
				  }
			});}
//update категорий
	function update(post){
			$.ajax({
			  type: "POST",
			  url: "index.php?option=com_addvirtue&view=ajax&task=categoryup&tmpl=component&format=raw",
			async: false,
			  data: post,
			  success: function(html){
			 	out=html;
	
			  }
			});}

//Обновление
	$(".category").blur(function(){
	var id = $(this).attr('id');
	  id = explode('_',id);
	  id=id[1];
	var val  = $(this).attr('value'); 
	update('id='+id+'&val='+val);
	$("#results").html(out);
	});	

	//Клик выбор	
	$(".category").click(function(){
	var id = $(this).attr('id');
	  id = explode('_',id);
	  id=id[1];
		load('id='+id);
		var ch = $(this).parent().find("#child");
		ch.html(out);
	});

$html.='<div class="cat_name"><input class="category" type="text" id="cat_'.$cat[0]->virtuemart_category_id.'" value="'.$cat[0]->category_name.'"/><div id="child"></div></div>';


При добавлении ajax-сом input-тов они не находятся в массиве элементов страницы, есть ли возможность их туда добавить.
$('.category').on('click', function(){})

как то не помог, если ее вставить в клик то работает только для 2-го под уровня для третьего ее же нужно вставлять в саму себя и так до бесконечности.
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2013, 12:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В таких случаях делают так: навешивают обработчик события на контейнер, и в этом обработчике проверяется источник события. Если источник к примеру имеет класс .category, то запускаем определенный код. Это называется делегирование событий.
В jQuery такая приблуда уже встроена. Использовать так:
$('.mycontainer').on('click', '.category', function() {alert('Клик по .category')});

Я вижу в коде async:false. Это признак кривых рук. Ибо в таком случае сайт при подгрузке будет затуплять и виснуть. Я бы порекомендовал использовать все-таки асинхронные запросы.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу jQuery плагин для создания меню Zeboton jQuery 9 15.09.2014 15:31
Меню с использованием Jquery, "защита от дурака" :) vyrtime jQuery 2 05.08.2011 12:50
Не работает jQuery меню с AJAX eugene1986 jQuery 0 08.07.2010 18:49
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
анимированное меню на jquery глючит в ie leCadavreExquis jQuery 3 30.12.2009 17:30