Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.10.2017, 18:09
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Проверка наличия класса
Есть разметка:
<div class="parent">
      <div class="one"></div>
</div>
<div class="parent">
      <div class="one"></div>
</div>
<span class=""></span>

при щелчке по элементу one в первом контейнере с классом parent добавляется еще один класс. Получается:
<div class="parent">
      <div class="one active"></div>
</div>
<div class="parent">
      <div class="one"></div>
</div>
<span class="disabled"></span>

Как задать условие, при котором при клике по one происходит проверка всех элементов на странице с этим классом, и если во всех элементах one есть класс active, то у span удаляется disabled?
Ответить с цитированием
  #2 (permalink)  
Старый 26.10.2017, 18:14
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Янковиц,
А что не получается? Какие вопросы?
Ответить с цитированием
  #3 (permalink)  
Старый 26.10.2017, 18:18
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Получается что-то вроде :
jQuery(document).ready(function($) {
	jQuery('.one').click(function() {
		jQuery(this).addClass('active');

		if($('.parent').children().is('.active')){
			alert('Выберите опции товара перед его добавлением в вашу корзину.');
		} else {
			jQuery('span').removeClass('disabled');
		}
	});
});

То-есть, классы добавляются, но у span не могу удалить disabled
Ответить с цитированием
  #4 (permalink)  
Старый 26.10.2017, 18:19
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

В условии ошибка.
Ответить с цитированием
  #5 (permalink)  
Старый 26.10.2017, 18:24
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Небольшое уточнение. Количество элементов с классом one может быть разное. И active должен быть только у одного элемента.
<div class="parent">
      <div class="one"></div>
      <div class="one"></div>
</div>
<div class="parent">
      <div class="one"></div>
      <div class="one"></div>
</div>
<span class=""></span>
Ответить с цитированием
  #6 (permalink)  
Старый 26.10.2017, 18:28
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Янковиц,
А когда у span появляется disabled ?
Ответить с цитированием
  #7 (permalink)  
Старый 26.10.2017, 18:29
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Янковиц
active должен быть только у одного элемента
Всего у одного? Или в родительском div?
Ответить с цитированием
  #8 (permalink)  
Старый 26.10.2017, 18:30
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Когда в каждом parent есть по одному one с классом active.
Ответить с цитированием
  #9 (permalink)  
Старый 26.10.2017, 18:30
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

javascript every
Сообщение от Янковиц
Как задать условие, при котором при клике по one происходит проверка всех элементов на странице с этим классом, и если во всех элементах one есть класс active, то у span удаляется disabled?
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>javascript every</title>
</head>
<body>

	<div class="parent">
		<div class="one">one</div>
	</div>
	<div class="parent">
		<div class="one">one</div>
	</div>
	<span class="disabled">span</span>

	<script>
		(function(span, hook, target) {
			var sp = document.querySelector('.'+span);
			document.addEventListener('click', function(e) {
				if (e.target.classList.contains(target)) {
					e.target.classList.add(hook);
					var qf = [].every.call(document.querySelectorAll('.'+target), function(elem, indx) {
						return elem.classList.contains(hook);
					});
					if (qf) sp.classList.remove(span);
				}
			});
		})('disabled', 'active', 'one');
	</script>

</body>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 26.10.2017, 18:31
Профессор
Отправить личное сообщение для Янковиц Посмотреть профиль Найти все сообщения от Янковиц
 
Регистрация: 17.11.2014
Сообщений: 403

Элемент с классом activ должен быть в каждом parent
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на наличие класса dema8912 jQuery 3 14.05.2015 14:17
Проверка наличия класса на странице milanac jQuery 5 24.11.2013 17:53
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Проверка наличия в массиве с условием spo jQuery 3 05.01.2013 15:05
проверка наличия определенного класса из нескольких shaltay jQuery 1 20.10.2011 20:14