Javascript.RU

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

Функция toggle в списках
На данный момент имеется:
$.each(categories, function(index, category) {
	var item = $('<li></li>').addClass('mapplic-list-category').attr('data-category', category.id);
	var ol = $('<ol></ol>').css('border-color', category.color).appendTo(item);
	if (category.show == 'false') ol.hide();
	else item.addClass('mapplic-opened');
	var link = $('<a></a>').attr('href', '#').attr('title', category.title).css('background-color', category.color).text(category.title).prependTo(item);
	link.on('click', function(e) {
		e.preventDefault();
		item.toggleClass('mapplic-opened');
		ol.slideToggle(200);
	});
	if (category.icon) $('<img>').attr('src', category.icon).addClass('mapplic-list-thumbnail').prependTo(link);
	$('<span></span>').text('0').addClass('mapplic-list-count').prependTo(link);
	list.append(item);
});


создает множество списков, и при клике на элемент разворачивает/сворачивает отдельную ветку. нужна помощь в переделке скрипта который будет сворачивать все ветки при развертывании новой.

Последний раз редактировалось Pro100Alex, 20.02.2018 в 19:44.
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2018, 20:48
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$.each(categories, function(index, category) {
	var item = $('<li></li>').addClass('mapplic-list-category').attr('data-category', category.id);
	var ol = $('<ol></ol>').css('border-color', category.color).appendTo(item);
	if (category.show == 'false') ol.hide();
	else item.addClass('mapplic-opened');
	var link = $('<a></a>').attr('href', '#').attr('title', category.title).css('background-color', category.color).text(category.title).prependTo(item);
	link.on('click', function(e) {
		e.preventDefault();
		item.addClass('mapplic-opened');
		item.each(function(){
		if($(this)!= e.target)removeClass('mapplic-opened');
		});
		ol.slideToggle(200);
	});
	if (category.icon) $('<img>').attr('src', category.icon).addClass('mapplic-list-thumbnail').prependTo(link);
	$('<span></span>').text('0').addClass('mapplic-list-count').prependTo(link);
	list.append(item);
});


не уверен, но попробуйте
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2018, 20:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120

Pro100Alex,
$.each(categories, function(index, category) {
  var item = $('<li></li>').addClass('mapplic-list-category').attr('data-category', category.id);
  var ol = $('<ol></ol>').css('border-color', category.color).appendTo(item);
  if (category.show == 'false') ol.hide();
  else item.addClass('mapplic-opened');
  var link = $('<a></a>').attr('href', '#').attr('title', category.title).css('background-color', category.color).text(category.title).prependTo(item);
  link.on('click', function(e) {
    e.preventDefault();
    $('.mapplic-list-category')
    .not(item.toggleClass('mapplic-opened'))
    .removeClass('mapplic-opened').find('ol')
    .not(ol.slideToggle(200))
    .slideUp()
  });
  if (category.icon) $('<img>').attr('src', category.icon).addClass('mapplic-list-thumbnail').prependTo(link);
  $('<span></span>').text('0').addClass('mapplic-list-count').prependTo(link);
  list.append(item);
});
Ответить с цитированием
  #4 (permalink)  
Старый 21.02.2018, 07:14
Новичок на форуме
Отправить личное сообщение для Pro100Alex Посмотреть профиль Найти все сообщения от Pro100Alex
 
Регистрация: 20.02.2018
Сообщений: 3

рони ,

Спасибо, ваше решение помогло. Все работает как нужно
Ответить с цитированием
  #5 (permalink)  
Старый 21.02.2018, 07:17
Новичок на форуме
Отправить личное сообщение для Pro100Alex Посмотреть профиль Найти все сообщения от Pro100Alex
 
Регистрация: 20.02.2018
Сообщений: 3

j0hnik, спасибо за помощь в вашем примере меню не разворачивается ни в одном случае. Вышло статичное свернутое меню
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция вызывается несколько раз KiberQ Общие вопросы Javascript 11 01.03.2017 15:45
не вызывается функция при изменении option soft4you Общие вопросы Javascript 1 23.07.2014 17:41
AJAX функция для новых html-элементов broadcast77 AJAX и COMET 25 03.03.2014 14:01
функция не успевает Sadist_dead Элементы интерфейса 22 02.10.2011 19:00
дождаться выполнения toggle maximu$$ jQuery 7 04.05.2011 14:58