Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 13.06.2017, 16:53
Аспирант
Отправить личное сообщение для PonyS Посмотреть профиль Найти все сообщения от PonyS
 
Регистрация: 19.04.2016
Сообщений: 55

Сообщение от рони Посмотреть сообщение
PonyS,
не нужно копировать целииком ответ!
для любых name="f..."
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
 .hot {
 display: none;
 }
 .hot.open {
   display: block;
 }

  </style>
  <script>
window.addEventListener("DOMContentLoaded", function() {
    var a = document.querySelectorAll(".hot"),
        d = a.length,
        b = document.querySelectorAll("[name^='f']"),
        e = a[0];
    [].forEach.call(b, function(f, g) {
        var c = g % d;
        f.addEventListener("click", function() {
            e.classList.remove("open");
            a[c].classList.add("open");
            e = a[c];
            [].forEach.call(b, function(a, b) {
                a.checked = b % d == c
            })
        })
    })
});
  </script>
</head>

<body>
<style type="text/css">
    .hot{
         border: 1px dashed Gray; padding: 5px; height: 100px; width: 100px
    }

  </style>
  <input name="f" type="radio" >
  <input name="f" type="radio" >
  <input name="f" type="radio" >
  <input name="fa" type="radio" >
  <input name="fa" type="radio" >
  <input name="fa" type="radio" >
 <div class="hot open" >0</div>
 <div class="hot" >1</div>
 <div class="hot" >2</div>
</body>
</html>
Спасибо больше, то что нужно! Остался вопрос с .open для первого div...подскажите пожалуйста, как можно определить на странице первый div hot и выставить ему open class? т.к. у меня порядок меняется div и radio, и если я выставлю всем open, то при первом заходе на страницу будет дубль всех div, а нужно только 1... Появилась идея jquery - найти на странице первый div с class hot из всех что есть, и добавить ему class - open, сработает так или нужно другое что-то думать?
Ответить с цитированием
  #22 (permalink)  
Старый 13.06.2017, 16:59
Аспирант
Отправить личное сообщение для PonyS Посмотреть профиль Найти все сообщения от PonyS
 
Регистрация: 19.04.2016
Сообщений: 55

решил вопрос с open через jquery -
$(".construct").find("div.hot:first").addClass("open");
, спасибо большое за помощь!
Ответить с цитированием
  #23 (permalink)  
Старый 13.06.2017, 17:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

Сообщение от PonyS
Остался вопрос с .open для первого div...подскажите пожалуйста, как можно определить на странице первый div hot и выставить ему open class?
window.addEventListener("DOMContentLoaded", function() {
    var a = document.querySelectorAll(".hot"),
        d = a.length,
        b = document.querySelectorAll("[name^='f']"),
        e = a[0];
*!*
        e.classList.add("open");
*/!*
    [].forEach.call(b, function(f, g) {
        var c = g % d;
        f.addEventListener("click", function() {
            e.classList.remove("open");
            a[c].classList.add("open");
            e = a[c];
            [].forEach.call(b, function(a, b) {
                a.checked = b % d == c
            })
        })
    })
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработчик событий для динамически добавленных элементов Tecvid Events/DOM/Window 28 25.06.2018 13:49
Упрощение скрипта (расширение Хром) x3n1tr0n Javascript под браузер 0 04.02.2015 23:52
Нужны ли дополнительные программы для отображения Java скрипта в браузере? koderman Общие вопросы Javascript 4 07.02.2014 05:25
Настройка отображения div блока m1haluc4 Элементы интерфейса 9 14.07.2013 15:12
Загрузка скрипта в DIV KOTShalun AJAX и COMET 12 18.03.2013 16:03