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

HTML+CSS+JavaScript

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

 

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

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

тема: "Показать все" в javascript
 
 автор: scorpius   (14.04.2009 в 15:07)   письмо автору
 
 

Пишу на PHP.
Есть такой код:

<script language='JavaScript'>
function show_hide_text(divObj) {
    var div = divObj.parentNode.getElementsByTagName('div')[1];
    if (div.style.display == 'none') {
        div.style.display = 'block';
        divObj.style.color = '#3418A3';
    } else {
        div.style.display = 'none';
        divObj.style.color = '#141414';
    }
}
</script>
//Далее цикл while
<div style='cursor: pointer;' onclick='show_hide_text(this)'><a>Показать</a></div>
<div style='display: none;'>
Text
</div>

Все работает, но нужно добавить "Показать все", т.е. на нажатие открывались все скрытые блоки.
Подскажите, что добавить или изменить. Знание javascript ниже плинтуса.

  Ответить  
 
 автор: PAT   (14.04.2009 в 17:43)   письмо автору
 
   для: scorpius   (14.04.2009 в 15:07)
 

Если все скрытые блоки - это именно теги DIV, то тогда пробегаетесь циклом по всей коллекции document.getElementsByTagName ('DIV') и применяете к каждому элементу style.display = 'block';

  Ответить  
 
 автор: scorpius   (15.04.2009 в 12:12)   письмо автору
 
   для: PAT   (14.04.2009 в 17:43)
 

Спасибо. Сделал так:

<script language=\"JavaScript\">
function show_hide_text(divObj) {
    var div = divObj.parentNode.getElementsByTagName('div')[1];
    if (div.style.display == 'none') {
        div.style.display = 'block';
        divObj.style.color = \"#3418A3\";
    } else {
        div.style.display = 'none';
        divObj.style.color = \"#141414\";
    }
}
function show_all()
{
    divs=document.getElementsByTagName ('DIV');
    for (i=2;i<divs.length;i=i+2)
    {
        divs[i].style.display='block';
    }
}
</script>
<div style=\"cursor: pointer;\" onclick=\"show_all()\" align='right'><a>Отобразить все</a></div>
//цикл while
<div style=\"cursor: pointer;\" onclick=\"show_hide_text(this)\" align='right'><a>Комментарии</a></div>
<div style=\"display: none;\">
Text
</div>
//while заканчивается

Все работает.

  Ответить  
 
 автор: scorpius   (16.04.2009 в 10:43)   письмо автору
 
   для: scorpius   (14.04.2009 в 15:07)
 

Появился такой вопрос
эта style='cursor: pointer;' делает всю строку в виде курсора и при нажатии на пустое место скрипт срабатывает
как избавится от этого глюка?

  Ответить  
 
 автор: DJ Paltus   (16.04.2009 в 23:50)   письмо автору
 
   для: scorpius   (16.04.2009 в 10:43)
 

Это не глюк. Вы обрабатываете стиль cursor и событие onClick в тэге div, так на что же оно еще должно срабатывать?
Ставьте всю эту шелуху для ссылки, а не для всего слоя целиком.

  Ответить  
Rambler's Top100
вверх

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