Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Замена одного скрытого див на другой. (https://javascript.ru/forum/dom-window/13449-zamena-odnogo-skrytogo-div-na-drugojj.html)

Djohan 29.11.2010 08:10

Замена одного скрытого див на другой.
 
Добрый день У меня такой вопрос. У меня есть горизонтально верхнее меню на странице. Хочу реализовать так чтобы при нажатие например первого меню на страницы появлялся скрытый див относящийся к этому меню. При нажатии на второй скрывался первый и появлялся див от второго меню. Ну вообщем чтобы при онклике на нужное меню все скрывалось и оставалось только одно.

Вот код:

<body>
<script type="text/javascript"> function displ(ddd) { if (document.getElementById(ddd).style.display == 'none') {document.getElementById(ddd).style.display = 'block'} else {document.getElementById(ddd).style.display = 'none'} } </script>

<a href="javascript: displ('1')">Описание</a> | <a href="javascript: displ('2')">Свойства</a> | <a href="javascript: displ('3')">Технические характеристики</a> | <a href="javascript: displ('4')">Использование</a>
<div id="1" style="display: none;">ТЕКСТ</div>
<div id="2" style="display: none;">ТЕКСТ2</div>
<div id="3" style="display: none;">ТЕКСТ3</div>
<div id="4" style="display: none;">ТЕКСТ4</div>

</body>



Вот сайт где этот пример: http://kexian.ru/?page_id=6:help: :help:

monolithed 29.11.2010 08:24

Как вариант для размышления:
<script type="text/javascript">
window.onload = function(){
    document.getElementsByTagName('a')[0].onclick = function(){
        var dt = document.getElementsByTagName('dt'), i = dt.length;
        while(i--){   
            return function(){
                dt[i].style.display = (dt[i].style.display == '') ? 'block' : '';
            };
        }
    }();
};
</script>

<style type="text/css">
dt {background: red; display: none; width: 100px; height: 50px;}
</style>
<dl>
    <dd><a href="#">click</a></dd>
    <dt></dt>
</dl>

Djohan 29.11.2010 08:34

ну здесь всеравно же нуужно два нажатия по меню чтобы оно или закрылось или открылось. Я не силен в джаве. Может есть какаято функция очищающая сценарий

ksa 29.11.2010 08:43

Цитата:

Сообщение от Djohan
здесь всеравно же нуужно два нажатия

Таки написали тебе
Цитата:

Сообщение от monolithed
вариант для размышления

Цитата:

Сообщение от Djohan
Я не силен в джаве

Не те размышления... :)

dmitriymar 29.11.2010 08:47

сделай обработчик к онклик к каждому из меню скрывалось принудительно три остальных и открывался только тот что связанный. работа с свойством дисплау
http://yapro.ru/web-master/javascrip..._stranice.html
или можеш сделать один див и менять в нём содержимое через innerHtml

рони 29.11.2010 08:50

Djohan,
Алгоритм то простой всё скрыть и показать нужный...
id лучше начинать с буквы и того:
<script type="text/javascript">
function displ(b) {
    for (var a = 1; a < 5; a++) document.getElementById("d" + a).style.display = "none";
    document.getElementById("d" + b).style.display = "block"
};
</script>
<a href="javascript: displ('1')">Описание</a> | <a href="javascript: displ('2')">Свойства</a> | <a href="javascript: displ('3')">Технические характеристики</a> | <a href="javascript: displ('4')">Использование</a>
<div id="d1" style="display: block;">ТЕКСТ1</div>
<div id="d2" style="display: none;">ТЕКСТ2</div>
<div id="d3" style="display: none;">ТЕКСТ3</div>
<div id="d4" style="display: none;">ТЕКСТ4</div>

monolithed 29.11.2010 09:25

Djohan какой же вы не самостоятельный:

<script type="text/javascript">
window.onload = function(){
     var a = document.getElementsByTagName('a'), i = a.length;
     while(i--){
          a[i].onclick = function(i){
             var dt = document.getElementsByTagName('dt');
              return function(){
                 dt[i].style.display = (dt[i].style.display == '') ? 'block' : '';
              };
          }(i);
     }
 };
</script>

<style type="text/css">
dl, dt, dd {margin: 0px;  padding: 0px;}
dl {border: 1px solid #DDD; float: left; margin-right: 10px; padding: 0px; width: 50px;}
dd, dt {text-align: center;}
dt {background: red; display: none; width: 50px; height: 50px;}
</style>

<dl>
    <dd><a href="#">click</a></dd>
    <dt>1</dt>
</dl>
<dl>
     <dd><a href="#">click</a></dd>
     <dt>2</dt>
</dl>

Djohan 29.11.2010 12:40

да я на учебу уезжал :) ВРемя думать не было. ВОт приехал а тут уже столько советов :) Спасибо большое :) Щас буду разбираться :)

ПЫС: А вообще у меня изучение джавы в планах. Сейчас пока не до этого :(

ksa 29.11.2010 13:22

Цитата:

Сообщение от Djohan
Сейчас пока не до этого

На первом плане захват мира? :lol:


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