Задать вопрос
serovpochta
@serovpochta
Лысый

По клику на кнопку добавлять стиль родительскому контейнеру кнопки, одновременно с этим, одноименным контейнерам задавать общий стиль?

Есть у меня скрипт и он делает все правильно, но он не назначает стиль одноименным контейнерам, которые остаются не кликнутыми, в то время, как один контейнер открыт и ему задан отличный стиль ото всех таких же одноименных блоков

Нагляднее станет понятнее )) https://jsfiddle.net/L057ya3d/

Все это надо для того что бы назначать не кликнутым контейнерам размытость (либо что-то еще)

Воот..
Как теперь доделать скрипт, что бы остальным контейнерам тоже задавать стиль, но один на всех, при открытом одном контейнере?

Будьте любезны, сделайте что нибудь с этим )
Спасибо за внимание!
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
Думаю так будет то что ты хочешь)
Добавь это после jQuery(document).ready(function($) {
$('#content .boxcontainer').on('click', 'article button.emb', function(){
        
        $('#content .boxcontainer').children('article').removeClass('active');
		$('#content .boxcontainer').children('article').addClass('non_active');

		embButtonClick( $(this) );

		$(this).parents('article').removeClass('non_active');
		$(this).parents('article').addClass('active');

	});


Свою функцию измени на эти две:
function embButtonClick(thisss) {
  
      var block = thisss.next('.meta-data'),
        pinbox = thisss.parents('.pinbox');

      pinbox.toggleClass('pinbox_active');

      if (pinbox.hasClass('pinbox_active')) {
        block.slideDown(100);
        $(document).on('click', function(event) {
          if ($(event.target).closest(pinbox).length) {
            if (!$('.modal-backdrop').length)
              $('body').append('<div class="modal-backdrop fade in"></div>');
              $('.modal-backdrop').bind('click', ModalBackdropClear);
            return;
          }
          block.hide(100);
          pinbox.removeClass('pinbox_active');
          $('.modal-backdrop').remove();
          event.stopPropagation();
        });
      }

}

function ModalBackdropClear(){
    $('#content .boxcontainer').children('article').removeClass('active non_active');
}
Ответ написан
Комментировать
@KnightForce
Своими словами:
В момент клика в родителе ищешь все нужные потомки через children или find() и добавляешь нужный класс.
Можешь фильтровать активный элемент.

Абстрактный код:
var parent = $(".parent");

parent .click(function(e) {
  $(e.target).addClass("active");
  parent.find("button:not(.active)").addClass("blur");
});


Либо всем потомкам контейнера установи размытие, а активному отменяй.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы