Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2010, 20:03
Новичок на форуме
Отправить личное сообщение для masjka Посмотреть профиль Найти все сообщения от masjka
 
Регистрация: 18.10.2010
Сообщений: 1

Show/Hide с checkbox
Ув.

Фактически не владею 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;}


Буду благодарна любой помощи.

Последний раз редактировалось masjka, 18.10.2010 в 20:21.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
спрятать/показать поле ввода при нажатии на checkbox g1r Элементы интерфейса 34 16.12.2017 00:34
AJAX + Firefox некорректное отображение checkbox shu7 Firefox/Mozilla 2 26.06.2015 14:23
Згачения выделенных checkbox vova_b jQuery 22 24.12.2013 20:52
Свой стиль для CheckBox vah-smile Элементы интерфейса 7 23.06.2011 18:34
как посчитать сумму выбранных элементов checkbox nikimak92 Общие вопросы Javascript 9 01.06.2010 10:16