Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите со скриптом
 
 автор: zavragnov   (26.12.2006 в 13:29)   письмо автору
 
 

Прошу помощи в реализации.

Нужно сделать, чтобы после нажатия на ссылку "показать все/скрыть все", либо показывались все блоки, либо скрывались все. html приведен ниже если есть возможность то лучше его не изменять, так как он генерируется PHP скриптом.


<a href="#" onclick="??? hideshowall ???? ">показать все/скрыть все</a>

<ul>
  <div id="root" style="display='none'"> <a href="#" onclick="hideshow('perviy')">первый</a> <br>
      <ul>
        <div id="perviy" style="display='none'"> <a href="#" onclick="hideshow('podrazdel1')">название в меню</a> <br>
            <ul>
              <div id="podrazdel1" style="display='none'"> <a href="#" onclick="hideshow('chetire')">название в меню3</a><br>
              </div>
            </ul>
          <a href="#" onclick="hideshow('piatiy')">название в меню4</a> <br>
          <ul>
            <div id="piatiy" style="display='none'"> <a href="#" onclick="hideshow('nazvanie_v_menyu')">название в меню</a><br>
                <ul>
                  <div id="nazvanie_v_menyu" style="display='none'"></div>
                </ul>
              <a href="#" onclick="hideshow('privyazka')">привязка</a><br>
              <ul>
                <div id="privyazka" style="display='none'"></div>
              </ul>
            </div>
          </ul>
          <a href="#" onclick="hideshow('tretiy')">название в меню2</a><br>
        </div>
      </ul>
  </div>
</ul>

   
 
 автор: SHAman   (26.12.2006 в 13:46)   письмо автору
 
   для: zavragnov   (26.12.2006 в 13:29)
 


<script>
function switcher  {
var el=document.getElementById('screen');
if (el.style.display=='none')   {
    el.style.display = 'inline';    //или 'block' если это блочный элемент
}
else   {
   el.style.display='none';
}
}
</script>


И прикручиваем этот скрипт к хтмл:


<a href="javascript: switcher()">клик</a>
<div id='screen'>
текст
</div>


не гарантирую работу, потому что писал на коленке. Но смысл такой. Попробуй - вдруг получится? ;)

   
 
 автор: zavragnov   (26.12.2006 в 14:21)   письмо автору
 
   для: SHAman   (26.12.2006 в 13:46)
 

Спасибо, но этот скрипт не работает, да и разве он открывает все элементы или только с определенным id, мне нужно развернуть (показать\скрыть) одновременно все с разными id

   
 
 автор: zavragnov   (26.12.2006 в 17:59)   письмо автору
 
   для: zavragnov   (26.12.2006 в 14:21)
 

up

   
 
 автор: Фитч   (26.12.2006 в 19:07)   письмо автору
 
   для: zavragnov   (26.12.2006 в 14:21)
 

Маааааааааааленький вопрос: а зачем у div-ов, которые эл-ты списка стоит display:none?
Его надо убрать, и код, данный SHAman-ом будет работать!

   
 
 автор: zavragnov   (26.12.2006 в 21:34)   письмо автору
 
   для: Фитч   (26.12.2006 в 19:07)
 

Я уже писал выше html править не желательно, а display:none у дивов не просто так, у меня есть скрит корторый открывает/скрывает отдельные ветви данного дерева и по умолчанию все слои скрыты. А мне надо сделать чтобы все дерево раскрылось полностью, чтобы по отделности каждую ветвь не открывать.

PS

Знаю как это сделать на PHP, но это не подойдет - сраницу перегружать нельзя! Так что только JavaScript.

   
 
 автор: 12345   (26.12.2006 в 22:12)   письмо автору
 
   для: zavragnov   (26.12.2006 в 21:34)
 

ну и поснимайте у всех программно style.display :

document.getElementById('perviy').style.display=''; , и так у всех, и потом не ставить, управлять только 'root'. Вообще-то HTML править придётся, он не просто невалидный - неграмотный. UL может содержать только cgbcrjdst элементы (LI, UL, OL).

   
 
 автор: 12345   (26.12.2006 в 22:02)   письмо автору
 
   для: Фитч   (26.12.2006 в 19:07)
 

Он и так будет работать.

zavragnov : чтобы скрипт, написанный SHAman-oм, заработал, его ещё переписывают, прямо из форума он не подействует на ваш компьютер.
Это ж не заряженная вода.

   
 
 автор: zavragnov   (26.12.2006 в 22:20)   письмо автору
 
   для: 12345   (26.12.2006 в 22:02)
 

Уважаемый 12345 я много читал ваших постов. Мож вы поможете переписать. А приведенный SHAman-oм нерабочй проверьте сами.

   
 
 автор: 12345   (26.12.2006 в 22:50)   письмо автору
 
   для: zavragnov   (26.12.2006 в 22:20)
 

Не, ну это взять и писать руками. Можно в цикле. У каждого тега, где display:none, надо установить "пусто". Хотя разумнее это из кода убрать. Но если Вам нужно убирать из кода скриптом, делайте.

Код SHaman над вашим куском кода будет нерабочим, потому что там всё невидимо. После однократного убирания стилей невидимости он начнёт работать (про UL-DIV-LI не забудьте - тоже причина не делать пример: даёте неграмотный код с условием: его править нежелательно. Ну ваше право работать с неправильным кодом.).

   
 
 автор: Sc   (27.12.2006 в 22:06)   письмо автору
 
   для: 12345   (26.12.2006 в 22:50)
 


...

<script language="javascript">
function openfull(ID)
{

  if(!document.all[ID]) return false;

  if(document.all[ID].style.display == "none")
  {
    document.all[ID].style.display = "";
  }else
  {
    document.all[ID].style.display = "none";
  }
  return false;

}
</script>

...

<div>
<a href="index.php" onClick="return openfull('textshow');" title="Скрыть/Показать Все">Скрыть/Показать Все</a>
<p id="textshow" style="display: none;">
Текст
</p>
</div>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования