Show/Hide с checkbox
Ув.
Фактически не владею JavaScript , но кровь из носа надо решить задачу. Есть список названий из базы, в каждом списке имеется ещё один - подчиненный список, которые должен открываться при нажатии на главный элемент каждого списка и закрываться тоже он должен при нажатии на тот же элемент (свернуть - развернуть). Задача улсажняется, у каждого элемента списка и перента и чаилда есть чекбокс, для следующего селекта из базы. Есть код, но этот код закрывает (или сворачивает) чаилд список при клике по чекбоксу. Метод тыка исчерпал себя, прошу помощи :victory: Надо, сварачивать чаилд список только по факту клика по парент элемент, а не по факту клика по чекбоксу. джаваскрипт <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;} Буду благодарна любой помощи. |
Часовой пояс GMT +3, время: 06:24. |