Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поочередное скрытие div (https://javascript.ru/forum/misc/55846-poocherednoe-skrytie-div.html)

k_DizeL 17.05.2015 00:10

Поочередное скрытие div
 
Имеются блоки (window), у всех display:none
<div class="window1"></div>
<div class="window2"></div>
<div class="window3"></div>
<div class="window4"></div>
<div class="window5"></div>
<div class="window6"></div>
<div class="window7"></div>
<div class="window8"></div>

И есть checkbox 9 штук:
<input type="checkbox" id="checkb" />
 <label for="checkb">Чекбокс</label>

<input type="checkbox" id="che1" />
 <label for="che1">Еще</label>


Как сделать так, что бы при выборе checbox, например 3 штук к классам
window1 window2 и window3 присвоился disblay:bclok?
Соотвественно и обратно, убрали галочки, остался один активированный checkbox, следовательно только у window1 disblay:bclok

k_DizeL 17.05.2015 00:14

ДОшло только до
var checboxz=$("input[type='checkbox']");
checboxz.change(function(){
 var window='';
 checboxz.each(function(){if($(this).is(':checked')){window+=[S]zzz[/S];}});
});

k_DizeL 17.05.2015 02:13

Смог выполнить подсчет количества выбранных чекбоксов
var countChecked = function() {
  var n = $( 'input:checked' ).length;
  $( '#macs .window').text( n + ' выбрано!' );
};
countChecked();
$( 'input[type=checkbox]' ).on( 'click', countChecked );

Но ни как не пойму, как мне количество выбранных чекбоксов n, дописать к классу window. Что бы получилось window1 - при выборе 1 чекбокса. При выборе 3х чекбоксов window3

рони 17.05.2015 09:21

k_DizeL,
можно ли как то однозначно сделать описание ?

k_DizeL 17.05.2015 14:48

рони,

<style>.window1, .window2, .window3, .window4,. window5, .window6, .window7, .window8 {disblay:none}</style>
<div class="window1"></div>
<div class="window2"></div>
<div class="window3"></div>
<div class="window4"></div>
<div class="window5"></div>
<div class="window6"></div>
<div class="window7"></div>
<div class="window8"></div>


<input type="checkbox" id="checkb" />
 <label for="checkb">Чекбокс</label>

<input type="checkbox" id="che1" />
 <label for="che1">Еще</label>

 <input type="checkbox" id="fg" />
 <label for="fg">Чекбокс</label>

<input type="checkbox" id="hh" />
 <label for="hh">Еще</label>

 <input type="checkbox" id="checkb" />
 <label for="checkb">Чекбокс</label>

<input type="checkbox" id="che1sd" />
 <label for="che1sd">Еще</label>

 <input type="checkbox" id="asd" />
 <label for="asd">Чекбокс</label>

<input type="checkbox" id="xzxc" />
 <label for="xzxc">Еще</label>


При установленных (включенных) влажках на 3 чекбоксах:
.window1, .window2, .window3 {display:block}

Если ставим на 2 чекбоксах галочки, то:
.window1, .window2{display:block}
.window3  {display:none} /* и остальные window4 5 6 7 8 */

Каждый включенный флажек (не важно какой по порядку), ставит для window display:block, так же и убирает.

рони 17.05.2015 16:10

k_DizeL,
:-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  div.win  {
    display: none;

  }
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       var $divs = $("div.win"), $inps = $("input.win");
       $inps.click(function() {
         var len = $inps.filter(":checked").length
         $divs.hide().slice(0,len).show()
      });
});

  </script>
</head>

<body>
<div class="win">window1</div>
<div class="win">window2</div>
<div class="win">window3</div>
<div class="win">window4</div>
<div class="win">window5</div>
<div class="win">window6</div>
<div class="win">window7</div>
<div class="win">window8</div>


<input type="checkbox" id="checkb"  class="win"/>
 <label for="checkb">Чекбокс</label>

<input type="checkbox" id="che1"  class="win"/>
 <label for="che1">Еще</label>

 <input type="checkbox" id="fg"  class="win"/>
 <label for="fg">Чекбокс</label>

<input type="checkbox" id="hh"  class="win"/>
 <label for="hh">Еще</label>

 <input type="checkbox" id="checkb"  class="win"/>
 <label for="checkb">Чекбокс</label>

<input type="checkbox" id="che1sd"  class="win"/>
 <label for="che1sd">Еще</label>

 <input type="checkbox" id="asd"  class="win"/>
 <label for="asd">Чекбокс</label>

<input type="checkbox" id="xzxc"  class="win"/>
 <label for="xzxc">Еще</label>



</body>

</html>

k_DizeL 17.05.2015 16:53

Именно так, вот только class="win" не такой. А обязательно class="window1"
и так далее. Это важно и проблемно

рони 17.05.2015 17:44

Цитата:

Сообщение от k_DizeL
и проблемно

селекторы не пробовали изучить?
var $divs = $('[class^="window"]'),

k_DizeL 17.05.2015 19:02

Просматривал, но подходящего ничего не находил, потому что логика выполнения скрипта у меня была совсем другая.
Читал про селекторы тут http://jquery.page2page.ru/index.php5/Селекторы

рони 17.05.2015 19:07

k_DizeL,
Селектор по началу атрибута


Часовой пояс GMT +3, время: 07:28.