<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

В начале курса у нас будет только идея, а в конце готовый продукт, который можно использовать в практических целях.

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Возникновение события при изменении checkbox
22.11.2011 03:55:42 Возникновение события при изменении checkbox Сообщение #1
Михалыч

Михалыч

Новичок

Новичок

Дата регистрации:
19.11.2011 14:44:12

Сообщений: 13

Вопрос по статье "Возникновение события при изменении checkbox на JavaScript".

Создаю районную электронную Книгу Памяти. Есть несколько списков:
1.1. Погибшие, призванные "нашим" РВК
1.2. Погибшие, призванные "чужими" РВК
2. Судьба не установлена (воевали, но погибли или выжили - не известно)
3.1. Вернувшиеся, призванные "нашим" РВК
3.2. Вернувшиеся, призванные "чужими" РВК
4. Осужденные военным трибуналом.

Сейчас все списки отдельные. Есть идея их все объединить в алфавитном порядке, но что бы каждая запись была под своим ID (с различным цветом фона), и открывать нужные (или все сразу) по соответствующим чекбоксам.

Списки нумерованные (через OL), отдельной строкой (DIV) ФИО, отдельно (DIV) - "подробности" о судьбе. "Подробности" скрыты в сполер, который по клику на ФИО открывается/закрывается.

Трудности - на некоторых лиц есть отдельная страница с описанием, которая открывается по текстовой ссылке, выполненной через ФИО. И сполер так же должен открываться по клику/ссылке на ФИО. (Так же предполагается выполнить переходы по якорям на страницы с памятниками, но тут видимо нужно делать через ссылку на картинку, помещенную возле фамилии)

Списки разбиты по первой букве фамилии. Количество записей по каждой букве - различное (от единиц на "Э" до более 1000 на "К". Списки не окончательные, идет постоянное изменение, добавление, редактирование.

Вопрос: как организовать массив и что принять за ID, по которому нужно делать перебор? (ведь хочется, что бы скрипт был один на все страницы, а количество записей в них - разное).

Понимаю, что смутное объяснение, конечно же..
Профиль Ответить
09.03.2012 08:15:14 Возникновение события при изменении checkbox Сообщение #2
Михалыч

Михалыч

Новичок

Новичок

Дата регистрации:
19.11.2011 14:44:12

Сообщений: 13

не хватает ума...
что получилось, дальше не знаю, что делать, помогайте, плиз!


<!DOCTYPE html>
<html>
<head>
<meta charset=UTF-8 />


<script type="text/javascript">
<!--
function show_hide_block(xdata){ obj=xdata.parentNode.childNodes[1].style; tmp=(obj.display!='block') ? 'block' : 'none'; obj.display=tmp; return false; }


function showOrHide(cb, cat) {
cb = document.getElementById(cb);
cat = document.getElementById(cat);
if (cb.checked) cat.style.display = "block";
else cat.style.display = "none";
}
-->
</script>

</head>
<body>
<header>
<nav>


<div>
<input type = 'checkbox' id = 'cb2' onclick = 'showOrHide("cb2", "cat2";'/>погибли<br />
<input type = 'checkbox' id = 'cb3' onclick = 'showOrHide("cb3", "cat3";'/>вернулись<br />
<input type = 'checkbox' id = 'cb4' onclick = 'showOrHide("cb4", "cat4";'/>не установлено<br />
<input type = 'checkbox' id = 'cb1' onclick = 'showOrHide("cb1", "cat1";'/>подробно
</div>


</nav>
</header>
<fieldset>
<legend class="leg"><b>Книга Памяти</b></legend>
<section>
<ol>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 1</b></a><div id = 'cat1' style = 'display: none;'>подробности 1: призван погиб</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 2</b></a><div id = 'cat1' style = 'display: none;'>подробности 2: призван вернулся</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 3</b></a><div id = 'cat1' style = 'display: none;'>подробности 3: призван погиб</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 4</b></a><div id = 'cat1' style = 'display: none;'>подробности 4: призван вернулся</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 5</b></a><div id = 'cat1' style = 'display: none;'>подробности 5: призван</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 6</b></a><div id = 'cat1' style = 'display: none;'>подробности 6: призван погиб</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 7</b></a><div id = 'cat1' style = 'display: none;'>подробности 7: призван вернулся</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 8</b></a><div id = 'cat1' style = 'display: none;'>подробности 8: призван вернулся</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 9</b></a><div id = 'cat1' style = 'display: none;'>подробности 9: призван погиб</div></div></li>
<li><div><a title="подробности" onclick="show_hide_block(this)"><b>ФИО 10</b></a><div id = 'cat1' style = 'display: none;'>подробности 10: призван</div></div></li>
</ol>
</section>


</fieldset>

</body>
</html>
Профиль Ответить
09.03.2012 12:10:13 Возникновение события при изменении checkbox Сообщение #3
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Вы здесь расписали целую историю. Вы поставили несколько абсолютно различных задач и хотите всё это смешать в кучу и чтобы всё было сразу. Так не бывает. Забудьте обо всём, оставив только что-то одно. Например, по клику по элементу открывается внутренний div. Сделали, переходите к следующей задаче. За ID всегда принимается отдельный человек.
Профиль Ответить
09.03.2012 12:31:39 Возникновение события при изменении checkbox Сообщение #4
Михалыч

Михалыч

Новичок

Новичок

Дата регистрации:
19.11.2011 14:44:12

Сообщений: 13

это я понимаю. понимаю, что нужно сделать цикл с проверкой на 2 (или же более) условия..
1. - открыт или закрыт div
2. - конец списка
но как это сделать - не пойму..

по этому остановился пока на внутреннем DIV, скрывающем "подробности", но как заставить обрабатывать все записи - не пойму...
Профиль Ответить
09.03.2012 13:29:17 Возникновение события при изменении checkbox Сообщение #5
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Чего их обрабатывать? Вывели все в нужные места и всё. Далее через JS раскрывайте те записи, которые выбрал пользователь (уже объяснял как, да и Вы это уже сделали).
Профиль Ответить
09.03.2012 13:35:22 Возникновение события при изменении checkbox Сообщение #6
Михалыч

Михалыч

Новичок

Новичок

Дата регистрации:
19.11.2011 14:44:12

Сообщений: 13

вот тут то и возникает вопрос (непонятки) - что и куда вывести?
у меня открывается только первая запись (За ID всегда принимается отдельный человек),
а мне нужно, что бы JS проходил все записи..
что то не так делаю, но не пойму - что
Профиль Ответить
09.03.2012 13:41:12 Возникновение события при изменении checkbox Сообщение #7
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

За ID принимайте группу записей, то есть весь div. Когда кликают по соответствующему li открывайте весь div со всеми ФИО.
Профиль Ответить
09.03.2012 13:46:58 Возникновение события при изменении checkbox Сообщение #8
Михалыч

Михалыч

Новичок

Новичок

Дата регистрации:
19.11.2011 14:44:12

Сообщений: 13

вот тут то и возникает вопрос (непонятки) - что и куда вывести?
у меня открывается только первая запись (За ID всегда принимается отдельный человек),
а мне нужно, что бы JS проходил все записи..
что то не так делаю, но не пойму - что.

Задача 1
первоначально так, как есть - видны только ФИО. Если ищут только своего родственника, то щелкая по его ФИО открывается подробная запись о нем. и так, вручную можно открыть сколько угодно (спойлеры).
Но кликая по "подробностям" можно открыть или закрыть у всех сразу эти скрытые записи.
Профиль Ответить
09.03.2012 13:55:05 Возникновение события при изменении checkbox Сообщение #9
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

ФИО находится в li. Подробности скрыты в div. У div можно поставить id. После клика по li открывается этот div. Когда хотят открыть все сразу, нужно пройтись по всем li и открыть внутри каждого div.
Профиль Ответить
09.03.2012 14:16:10 Возникновение события при изменении checkbox Сообщение #10
Михалыч

Михалыч

Новичок

Новичок

Дата регистрации:
19.11.2011 14:44:12

Сообщений: 13

сейчас:
<li>
... <div> ФИО
...... <div>подробности
...... </div>
... </div>
</li>


нужно пройтись по всем li и открыть внутри каждого div
- для этого и нужен цикл, как я понимаю, что бы ройтись по всем li.
при этом id во внутренних div будут одинаковыми, но в разных li
или не так?

Задача 2 - на будущее
на эти li поставить еще один div, который и будет "отвечать" за первые чикбоксы
Профиль Ответить