|
|
|
| Намучал себе раскрывающееся меню, но есть небольшое но! Когда я раскрываю один пункт меню, а потом второй то первый не сворачивается... и... еще... простите :) оно сделано при помощи JavaScript, а хотелось бы увидеть реализацию на PHP.
Стиль
.folding{cursor:hand; color: #1b4f88; text-decoration: underline; font-weight: bold}
|
Ява кусок
<SCRIPT language=JavaScript1.2>
<!--
var head="display:''"
function change(){
if(!document.all) return
if (event.srcElement.className=="folding")
{
var x=event.srcElement.parentElement
if (x.all[2].style.display=="none")
{
x.all[2].style.display=''
}
else{
x.all[2].style.display="none"
}
}
}
document.onclick=change
//--></SCRIPT>
|
Использование :)
<ul>
<DIV><IMG height=1 width=1><SPAN class=menu>Пункт1
<UL style="DISPLAY: none; head: ">
<LI><A href="index.php?id=1">Пункт1.1</A>
<LI><A href="#">Пункт1.2</A>
<LI><A href="#">Пункт1.3</A></SPAN>
</UL>
</DIV>
<DIV><IMG height=1 width=1><SPAN class=menu>Пункт2
<UL style="DISPLAY: none; head: ">
<LI><A href="#">Пункт2.1</A>
<LI><A href="#">Пункт2.2</A>
<LI><A href="#">Пункт2.3</A> </SPAN>
</UL></DIV>
</ul>
|
Заранее благодарен. | |
|
|
|
|
|
|
|
для: Tsamada
(05.01.2006 в 12:45)
| | Ну на сколько мне известно - на php такого не сотваришь ибо сценарии выполняются на сервере а только затем уже отправляются результаты пользовательской машине - следовательно - это не есть реально... от пожалуй и всё, а Ваш вопрос относительна закрытия менюшки лучше направить в форум по Jav'e | |
|
|
|
|
 1.8 Кб |
|
|
для: Tsamada
(05.01.2006 в 12:45)
| | PHP вообще то серверный язык, поэтому динамическое меню не получится.
На JS ваше меню должно либо запоминать последнюю открытую ветвь, что бы потом ее закрыть, либо закрыть все, а потом открыть то, что было нажато последним.
Вот готовый кроссбраузерный код. | |
|
|
|
|
|
|
|
для: Duran
(05.01.2006 в 13:43)
| | Спасибо. :)
И в догонку, как тогда сделать что бы было бы :) . В общем чтоб нажал я на ссылку, а ветка, в которой я нажал ссылку, не сворачивалась обратно.
Примного благодарен. | |
|
|
|
|
|
|
|
для: Tsamada
(05.01.2006 в 14:35)
| | Кхм... не поняла :-)
Нужно, что бы открытая ветка осталась открытой после перезагрузки ?
Если так, то 3 варианта:
1 - работа с ключами (кукис)
2 - передача id diva открытой ветки через GET в виде параметра для дальнейшей обработки JS скрипту по onload.
3 - передача id divа открытой ветки через GET PHP скрипту на стороне которого формируется доп. строка типа id.style.display = "block"; , которую нужно прописать в onload.
2 последних очень просты в реализации. | |
|
|
|
|
|
|
|
для: Duran
(06.01.2006 в 08:35)
| | :) Правильно поняли...
А как реализовать? Спрашиваю, потому что новичек и не во всем понимаю :) | |
|
|
|
|
|
|
|
для: Tsamada
(06.01.2006 в 16:35)
| | Тут тщательно отработали открывание и закрывание меню. http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=10464&page=1. В других примерах тоже. | |
|
|
|
|
|
|
|
для: Tsamada
(06.01.2006 в 16:35)
| | Ну раз так, тада по существу:
В тело скрипта (между тегами <script> </script>) вставьте такую функцию
function init()
{
var string = location.search;
var current_str=string.substring (1, string.length);
SwitchMenu(current_str);
}
|
А в теге <BODY> пропишите ее старт по загрузке таким образом:
| |
|
|
|