Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.06.2018, 15:26
Интересующийся
Отправить личное сообщение для Win_D Посмотреть профиль Найти все сообщения от Win_D
 
Регистрация: 08.09.2016
Сообщений: 24

Поменять дочерний элемент по клику на родительский
Здравствуйте. На этом сайте в левой части страницы есть навигационное меню по категориям (скрин).

При клике на "+" показываются подкатегории и значок плюса меняется на минус, а при повторном клике минус снова меняется на плюс (скрин). Однако плюсы и минусы меняются у всех элементов списка. Подскажите пожалуйста, как на jQuery менять плюс на минус и обратно только у выбранного элемента?

Вот текущий код:
$(document).ready(function() {
  $('.category-item').on('click', '.show-submenu', function() {
    if($('.fa-plus').css('display') === 'inline-block') {
      $('.fa-plus').css('display', 'none');
      $('.fa-minus').css('display', 'inline-block');
    } else {
      $('.fa-minus').css('display', 'none');
      $('.fa-plus').css('display', 'inline-block');
    }
  $(this).siblings('.subcategories').slideToggle(0);
  });
});
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2018, 15:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Win_D,
$(document).ready(function() {
  $('.category-item').on('click', '.show-submenu', function() {
    if($('.fa-plus', this).css('display') === 'inline-block') {
      $('.fa-plus', this).css('display', 'none');
      $('.fa-minus', this).css('display', 'inline-block');
    } else {
      $('.fa-minus', this).css('display', 'none');
      $('.fa-plus', this).css('display', 'inline-block');
    }
  $(this).siblings('.subcategories').slideToggle(0);

  });
});
Ответить с цитированием
  #3 (permalink)  
Старый 19.06.2018, 15:41
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<div><span>+</span></div>
	<div><span>+</span></div>
	<div><span>+</span></div>
	<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<script>
$('div').click(function(){
	this.firstChild.textContent = this.textContent=='+'?'-':'+';
});
	</script>
Ответить с цитированием
  #4 (permalink)  
Старый 19.06.2018, 16:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Win_D,
j0hnik,
проще менять класс родителя
Ответить с цитированием
  #5 (permalink)  
Старый 19.06.2018, 16:34
Интересующийся
Отправить личное сообщение для Win_D Посмотреть профиль Найти все сообщения от Win_D
 
Регистрация: 08.09.2016
Сообщений: 24

Сообщение от рони Посмотреть сообщение
Win_D,
$(document).ready(function() {
  $('.category-item').on('click', '.show-submenu', function() {
    if($('.fa-plus', this).css('display') === 'inline-block') {
      $('.fa-plus', this).css('display', 'none');
      $('.fa-minus', this).css('display', 'inline-block');
    } else {
      $('.fa-minus', this).css('display', 'none');
      $('.fa-plus', this).css('display', 'inline-block');
    }
  $(this).siblings('.subcategories').slideToggle(0);

  });
});
Спасибо большое, всё отлично работает
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как ng-hide поменять так чтобы он не скрывал элемент, а применял к нему css класс? Djambulat Angular.js 10 01.12.2017 08:53
Как добавить новый элемент по клику. mer1985uui Events/DOM/Window 1 29.01.2017 00:20
выбрать дочерний элемент в функции $.each() failure jQuery 2 04.06.2015 23:19
Как узнать родительский элемент? alex_han Events/DOM/Window 6 06.12.2013 23:01
задействовать только дочерний элемент roma86 jQuery 2 03.10.2009 21:36