Javascript.RU

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

Фильтр (10символов)
Здравствуйте.
Есть чекбокы и селект.
Чекбокс "Мячики"
Чекбокс "Автомобили"
<select>
 1)Красные
 2)Синие
</select>

При активации Чекбокса "Мячики" - автомобили становятся полупрозрачными. И наоборот. Как сделать чтобы при выборе Красных или Синих стиль применялся только к нажатому чекбоксу, а не ко всем?
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 27.01.2016, 14:21
Интересующийся
Отправить личное сообщение для Anton6677 Посмотреть профиль Найти все сообщения от Anton6677
 
Регистрация: 11.01.2016
Сообщений: 14

-----

Последний раз редактировалось Anton6677, 27.01.2016 в 14:24.
Ответить с цитированием
  #3 (permalink)  
Старый 27.01.2016, 14:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Anton6677,
лучше макет с html
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2016, 14:51
Интересующийся
Отправить личное сообщение для Anton6677 Посмотреть профиль Найти все сообщения от Anton6677
 
Регистрация: 11.01.2016
Сообщений: 14

Сообщение от рони Посмотреть сообщение
Anton6677,
лучше макет с html
http://codepen.io/anon/pen/xZjKJG
я не знаю как сделать так, чтобы выбрав в select, к примеру, цифры, а затем нажав на четные, стиль применялся только к уже "активным" в select цифрам.

Последний раз редактировалось Anton6677, 27.01.2016 в 14:53.
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2016, 15:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Anton6677,
классы и стили добаьте по вкусу
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .red{
    background-color: #FF0000;
  }
 table {
    border:  1px solid black;
}
td {
    border: 1px solid black;
    padding: 50px;
}

  </style>
</head>
<body>
 <form action="http://">
    <select>
    <option>По умолчанию</option>
    <option value="num">Цифры</option>
    <option value="letter">Буквы</option>
    </select>

            <input type="checkbox" id="четные"> Четные
            <input type="checkbox" id="нечетные"> Нечетные
    <table>
       <tr>
            <td data-name="буквы" class="black_td">БУКВЫ</td>
           <td  data-name="буквы" class="black_td">БУКВЫ</td>
           <td  data-name="цифры" data-type="четные" class="black_td">ЧЕТНЫЕ ЦИФРЫ</td>
           <td  data-name="буквы" class="black_td">БУКВЫ</td>
        </tr>
         <tr>
              <td  data-name="цифры" data-type="Нечетные" class="black_td">НЕЧЕТНЫЕ ЦИФРЫ</td>
           <td  data-name="цифры" data-type="четные" class="black_td">ЧЕТНЫЕ ЦИФРЫ</td>
           <td  data-name="буквы" class="black_td">БУКВЫ</td>
             <td  data-name="цифры" data-type="Нечетные" class="black_td">НЕЧЕТНЫЕ ЦИФРЫ</td>
        </tr>
         <tr>
             <td  data-name="цифры" data-type="Нечетные" class="black_td">НЕЧЕТНЫЕ ЦИФРЫ</td>
           <td  data-name="буквы" class="black_td">БУКВЫ</td>
             <td  data-name="цифры" data-type="Нечетные" class="black_td">НЕЧЕТНЫЕ ЦИФРЫ</td>
           <td  data-name="цифры" data-type="четные" class="black_td">ЧЕТНЫЕ ЦИФРЫ</td>
        </tr>
    </table>
    </form>
<script>
window.addEventListener('DOMContentLoaded', function() {
  var td = document.querySelectorAll('td'),
      select = document.querySelector('select'),
      checkbox = document.querySelectorAll('[type="checkbox"]'),
 form = document.querySelector('form');

  form.addEventListener('change', function() {
    [].forEach.call(td , function(el) {
var data = el.dataset.name, type = el.dataset.type;
       el.classList.remove('red');
       if(data == 'буквы' && select.value == 'letter') el.classList.add('red');
       if(data == 'цифры' && select.value == 'num') el.classList.add('red');
       if(type == 'четные' && checkbox[0].checked) el.classList.add('red');
       if(type == 'Нечетные' && checkbox[1].checked) el.classList.add('red');
});

  });
    });
</script>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2016, 16:07
Интересующийся
Отправить личное сообщение для Anton6677 Посмотреть профиль Найти все сообщения от Anton6677
 
Регистрация: 11.01.2016
Сообщений: 14

http://www.dota2.com/heroes/
как реализовать вот это? тут когда выбираешь роль, а за тем тип атаки, то подсвечиваются только те герои, у когорых есть и выбранная роль и соответствующий тип атаки. Я не понимаю как это связать(
Ответить с цитированием
  #7 (permalink)  
Старый 27.01.2016, 16:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Anton6677,
обьединять параметры фильтров, но это раздел работа
Ответить с цитированием
  #8 (permalink)  
Старый 27.01.2016, 18:20
Аватар для Lemme
Профессор
Отправить личное сообщение для Lemme Посмотреть профиль Найти все сообщения от Lemme
 
Регистрация: 15.07.2015
Сообщений: 511

Anton6677, если нужно понять, то:

function sortByAttackType(heroes, attackType) {
	return heroes.filter(function(hero) {
  	return hero.attack_type === attackType;
  });
}

function sortByRole(heroes, role) {
	return heroes.filter(function(hero) {
  	return hero.role === role;
  });
}

var heroes = [
  { name: 'Anti-Mage', role: 'carry', attack_type: 'melee' },
  { name: 'Wraith King', role: 'carry', attack_type: 'melee' },
  { name: 'Tinker', role: 'carry', attack_type: 'ranged' },
  { name: 'Invoker', role: 'carry', attack_type: 'ranged' },
  
  { name: 'Ogre Magi', role: 'support', attack_type: 'melee' },
  { name: 'Abaddon', role: 'support', attack_type: 'melee' },
  { name: 'Crystal Maiden', role: 'support', attack_type: 'ranged' },
  { name: 'Disruptor', role: 'support', attack_type: 'ranged' },
];


var carries       = sortByRole(heroes, 'carry'),
    supports      = sortByRole(heroes, 'support'),
    melee         = sortByAttackType(heroes, 'melee'),
    ranged        = sortByAttackType(heroes, 'ranged'),
    meleeSupports = sortByRole(melee, 'support');

console.log(carries);
console.log(supports);
console.log(melee);
console.log(ranged);
console.log(meleeSupports);

Последний раз редактировалось Lemme, 27.01.2016 в 18:25.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтр сортировки съедает карусель ligisayan jQuery 5 01.07.2015 12:40
Фильтр по начальным символам Shasoft Angular.js 9 22.03.2015 09:25
Как в фильтр выборки по атрибуту занести переменную? tanto39 jQuery 9 29.06.2014 01:53
ng-repeat кастомный фильтр для фильтрации обьектов (непонятное поведение) VerDiz Angular.js 10 04.08.2013 15:42
Фильтр каталога Nivans Элементы интерфейса 4 15.07.2012 15:27