появление блоков по checkbox
Есть такой скрипт
http://jsfiddle.net/danya_postfactum/xdssd/ как сделать чтобы изначально выводились все блоки, а уже при клике на чекбокс остальные скрывались и выводились только блоки принадлежащие этому чекбоксу? Причём если будет отмечено несколько чекбоксов то и блоки должны быть показаны все, которые принадлежат этим чекбоксам? Заранее спасибо за помощь! |
segajb, Это не поможет ?
not checked parents (parent) http://jquery-docs.ru/Traversing/not/#expr http://jquery-docs.ru/Selectors/checked/ http://jquery-docs.ru/Traversing/parents/#expr |
Вот такой простенький вариант:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<input type="checkbox" class="ShowOrHide" value="myDivId1" checked />1 div
<input type="checkbox" class="ShowOrHide" value="myDivId2" checked />2 div
<input type="checkbox" class="ShowOrHide" value="myDivId3" checked />3 div
<hr />
<div id="myDivId1" class="ShowOrHide">div #1 content</div>
<div id="myDivId2" class="ShowOrHide">div #2 content</div>
<div id="myDivId3" class="ShowOrHide">div #3 content</div>
<script>
$('input.ShowOrHide').click(function() {
var this_id = $(this).val();
if ($(this).attr('checked') == 'checked') {
$('div#'+this_id).show();
} else {
$('div#'+this_id).hide();
}
});
</script>
</body>
</html>
|
cmd, боюсь ему надо что-то вроде этого:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<input type="checkbox" class="ShowOrHide" value="myDivId1" />1 div
<input type="checkbox" class="ShowOrHide" value="myDivId2" />2 div
<input type="checkbox" class="ShowOrHide" value="myDivId3" />3 div
<hr />
<div id="myDivId1" class="ShowOrHide">div #1 content</div>
<div id="myDivId2" class="ShowOrHide">div #2 content</div>
<div id="myDivId3" class="ShowOrHide">div #3 content</div>
<script>
$('input.ShowOrHide').click(function() {
var checked = $("input.ShowOrHide:checked");
if ( checked.length == 0 ) {
$("div.ShowOrHide").show();
} else {
$("div.ShowOrHide").hide();
checked.each(function() {
$( 'div#' + $(this).val() ).show();
});
}
});
</script>
</body>
</html>
|
А как сделать, чтобы по клику на 2 чекбокс выводились 2 и 3 блок?
Заранее спасибо! |
Цитата:
<html>
<head>
<style>
</style>
</head>
<body>
<input type="checkbox" id="one">
<input type="checkbox" id="two">
<input type="checkbox" id="three">
<hr>
<div id="divone">div one</div>
<div id="divtwo">div two</div>
<div id="divthree">div three</div>
<script>
boxes=[one, two, three]
divs=[divone, divtwo, divthree]
hideUnchecked=function(){
boxes.forEach(function(box){
window["div"+box.id].style.display=box.checked? "block" : "none"
})
if(this===two&&this.checked) divthree.style.display="block"
if(!boxes.some(function(box){return box.checked})) divs.forEach(function(div){div.style.display="block"})
}
boxes.forEach(function(box){box.onchange=hideUnchecked})
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 08:32. |