Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать авто закрытие ShowOrHide? (https://javascript.ru/forum/misc/27689-kak-sdelat-avto-zakrytie-showorhide.html)

Zlodar 22.04.2012 23:17

не получилось когда кликаешь переходит на javascript:ShowOrHide('newsbar')

Тобишь в окне браузера заместо ссылки javascript:ShowOrHide('newsbar')

Zlodar 22.04.2012 23:19

Ну щас хоть понятно что происходит. Ещё нужно литературу почитать на эту тему.

Dim@ 22.04.2012 23:26

попробуйте написать теги а примерно таким образом <a href='javascript: void 0' onClick=ShowOrHide('newsbar')>текст1</a> я думаю должно сработать

Caminante 23.04.2012 10:39

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

function ShowOrHide(id)
    {
        // обозначаем контейнер
    var container = documentGetElementById('container');    
       
        //собираем все div'ы внутри контейнера
    var divs = container.getElementsBYTagName('div');
 
        //проходимся циклом по всем div'ам
     for(var i = 0; i<divs.length; i++)
    {
    var divId = divs[i].id;
    if (divId == id)
        // если id текущего div'а совпадает с id, переданным функции, делаем его видимым или невидимым, если он уже открыт
    document.getElementById(divId).style.display = (document.getElementById(divId).style.display == 'none') ? 'block' : 'none';
    else
        //остальные элементы делаем невидимыми
    document.getElementById(divId).style.display =  'none';
    }
    }

shohxusrav 04.10.2012 12:04

Цитата:

Сообщение от Dim@ (Сообщение 170581)
Можно было сделать проще (это я про свой код), но я просто торопился:)
function ShowOrHide(id) {
if((document.getElementById('newsbar').style.display=='none'&&document.getElementById(id).style.display=='none')||(document.getElementById(id).style.display=='block'&&document.getElementById('newsbar').style.display=='block')){
document.getElementById(id).style.display='block'
document.getElementById('newsbar2').style.display='none'
document.getElementById('newsbar3').style.display='none'
}
if((document.getElementById('newsbar2').style.display=='none'&&document.getElementById(id).style.display=='none')||(document.getElementById(id).style.display=='block'&&document.getElementById('newsbar2').style.display=='block')){
document.getElementById('newsbar').style.display='none'
document.getElementById(id).style.display='block'
document.getElementById('newsbar3').style.display='none'
}
if((document.getElementById('newsbar3').style.display=='none'&&document.getElementById(id).style.display=='none')||(document.getElementById(id).style.display=='block'&&document.getElementById('newsbar3').style.display=='block')){
document.getElementById('newsbar').style.display='none'
document.getElementById(id).style.display='block'
document.getElementById('newsbar2').style.display='none'
}
	 }

Привет Дима!
У меня есть проблема! Пожалуйста помоги!

================================================== =====
<script type="text/javascript" language="javascript">
function ShowOrHide(id) {
if((document.getElementById('newsbar').style.displ ay=='none'&&document.getElementById(id).style.disp lay=='none')||(document.getElementById(id).style.d isplay=='block'&&document.getElementById('newsbar' ).style.display=='block')){
document.getElementById(id).style.display='block'
document.getElementById('newsbar2').style.display= 'none'
document.getElementById('newsbar3').style.display= 'none'
}
if((document.getElementById('newsbar2').style.disp lay=='none'&&document.getElementById(id).style.dis play=='none')||(document.getElementById(id).style. display=='block'&&document.getElementById('newsbar 2').style.display=='block')){
document.getElementById('newsbar').style.display=' none'
document.getElementById(id).style.display='block'
document.getElementById('newsbar3').style.display= 'none'
}
if((document.getElementById('newsbar3').style.disp lay=='none'&&document.getElementById(id).style.dis play=='none')||(document.getElementById(id).style. display=='block'&&document.getElementById('newsbar 3').style.display=='block')){
document.getElementById('newsbar').style.display=' none'
document.getElementById(id).style.display='block'
document.getElementById('newsbar2').style.display= 'none'
}
}
</script>

<a href="javascript:ShowOrHide('newsbar')">откры ть1</a>
<a href="javascript:ShowOrHide('newsbar2')">откр ть2</a>
<a href="javascript:ShowOrHide('newsbar3')">откр ть3</a>


<div id="newsbar" style="display:none;">
текст1
</div>
<div id="newsbar2" style="display:none;">
текст2
</div>
<div id="newsbar3" style="display:none;">
текст3
</div>
================================================== =====

Тепер ты должен мне кое в чем помочь. Ты ведь хорошо разбераешься в Javascript.

Когда кликаешь на (открыть1, открыть2, открыть3) тексты подними должны открываться медленно и еффективно а не сразу.

Зарание благодарю за помощь!

Dim@ 04.10.2012 17:23

shohxusrav,
это работа css, помочь помогу конечно, ток тот код не используй, он очень громоздкий и мягко говоря плохой, я его писал когда только знакомился с JS, щас напишу;)

shohxusrav 04.10.2012 20:06

Цитата:

Сообщение от Dim@ (Сообщение 208172)
shohxusrav,
это работа css, помочь помогу конечно, ток тот код не используй, он очень громоздкий и мягко говоря плохой, я его писал когда только знакомился с JS, щас напишу;)

Спасибо, и жду!


Часовой пояс GMT +3, время: 07:49.