Ув.
Фактически не владею JavaScript , но кровь из носа надо решить задачу.
Есть список названий из базы, в каждом списке имеется ещё один - подчиненный список, которые должен открываться при нажатии на главный элемент каждого списка и закрываться тоже он должен при нажатии на тот же элемент (свернуть - развернуть).
Задача улсажняется, у каждого элемента списка и перента и чаилда есть чекбокс, для следующего селекта из базы.
Есть код, но этот код закрывает (или сворачивает) чаилд список при клике по чекбоксу.
Метод тыка исчерпал себя, прошу помощи
Надо, сварачивать чаилд список только по факту клика по парент элемент, а не по факту клика по чекбоксу.
джаваскрипт
<script type="text/javascript">
$(function(){
$(".tv_channels > li > ul").each(function(){$(this).hide();});
$(".tv_channels > li").find("label").click(function(){
$(this).parent().find("ul").each(function(){
if ( $(this).is(':hidden') ) {
$(this).show("fast");
} else {
$(this).hide("fast");
}
});
});
$(".tv_channels > li").find("input[type='checkbox']").change(function(){
if ($(this).is(':checked')) {
$(this).parent().children("ul").find("input[type='checkbox']").each(function(){$(this).attr("checked","checked")});
} else {
$(this).parent().children("ul").find("input[type='checkbox']").each(function(){$(this).attr("checked",false)});
}
$("#tv_from").submit();
});
});
</script>
чекбоксы:
<form method="post" action="" id="tv_from">
<ul id="tv_channels_1" class="tv_channels">
<?php
for($i=0; $i < count($categories); $i+=2)
{
$category = $categories[$i];
echo '<li>';
$checked = isset($_POST['tv_cat']) && isset($_POST['tv_cat'][$category['key']]) ? ' checked="checked"' : '';
$checkbox = '<input type="checkbox" name="tv_cat['.$category['key'].']" '.$checked.'>';
$label = '<label onclick="tv_channels();">'.$category['title'].'</label>';
$channels = '<ul>';
$ch = 0;
foreach($category['channels'] as $channel)
{
$channels .= '<li>';
$checked = isset($_POST['tv_chn']) && isset($_POST['tv_chn'][$category['key']][$channel[0]]) ? ' checked="checked"' : '';
$channels .= '<input type="checkbox" id="tv_chn_'.$i.'_'.$ch.'" name="tv_chn['.$category['key'].']['.$channel[0].']" '.$checked.'>';
$channels .= ' <label for="tv_chn_'.$i.'_'.$ch.'">'.$channel[1].'</label>';
$channels .= '</li>';
$ch++;
}
$channels .= '</ul>';
echo $checkbox.' '.$label.$channels;
echo '</li>';
}
?>
</ul>
цсс, помойму он тоже тут в тему
#tv_channels_1 {float:left; margin: 0 0 0 40px; overflow:hidden;}
#tv_channels_2 {float:right; margin: 0 40px 0 0; overflow:hidden;}
.tv_channels {width:380px; overflow:hidden;}
.tv_channels li {padding: 2px;}
.tv_channels ul {padding: 3px 0 10px 10px;}
Буду благодарна любой помощи.