Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Переключение видимости блока (https://javascript.ru/forum/events/2594-pereklyuchenie-vidimosti-bloka.html)

sasyk 20.01.2009 11:43

Переключение видимости блока
 
Здраствуйте.
Вот имею код
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=cp-1251" />
    
    <script type="text/javascript">
    // <![CDATA[
        function displayblock(e)
        {  
            var b = document.getElementById('options');  
            
            b.style.display = (b.style.display == 'none') ? 'block' : 'none';
            
            stopBuble(e);
        }  
          
        function closeit()
        {  
            document.getElementById('options').style.display = 'none';
        }
        
        function stopBuble(e)
        {
            e = e ? e : window.event;
            e.cancelBubble = true;
            if (e.stopPropagation){ e.stopPropagation(); }
        }
    // ]]>
    </script>
    
    <style type="text/css">
        #options
        {position: absolute;
            background: #F3F3F3;
            border: 1px solid #E2E2E2;
            width: 500px;
	    height: 400px;
            padding: 10px;
            margin: 10px;
        }
    </style>
</head>
 
<body onclick="closeit();">
    <a href="javascript:;" onclick="displayblock(event);">Гипперссылка</a>
    <div id="options" style="display:none;" onclick="this.style.display='none'">Слой, на котором есть текст<br>
И всякое такое.<br>
Например <a href="#">гиперссылка</a>
</div>
</body>
</html>


Ну вот, такой код.
При клике на ссылке открывается слой
1. Как сделать, что бы при повторном клике на ссылке (когда слой виден) слой не закрывался
2. Как сделать, что бы ссылка направляла на определенный адрес, но переход по ссылке состоялся только , когда будет клик на слое (слой закроется и будет перенаправление скажем по ссылке)

x-yuri 26.01.2009 09:48

1. а что делает код
b.style.display = (b.style.display == 'none') ? 'block' : 'none';

?
2. http://javascript.ru/start/events/in...po-umolchaniiu, а при щелчке на слое переходить на нужную страницу с помощью window.location

Gvozd 26.01.2009 15:14

Цитата:

Сообщение от x-yuri
а что делает код
b.style.display = (b.style.display == 'none') ? 'block' : 'none';

переключает свойство display у объекта между block и none
Это называется тернарный оператор
ЗЫ наврено в нем и кроется проблема топикстартера.не проверял

Андрей Параничев 26.01.2009 17:44

1. Вместо:
b.style.display = (b.style.display == 'none') ? 'block' : 'none';

Напишите:
b.style.display = 'block';


2. Не понял, разъясните.

Добавлено:
Название темы отредактировано, пожалуйста, называйте темы более осмыслено, чтоб другие люди потом могли найти интересующие их обсуждения через поиск.

x-yuri 26.01.2009 21:22

1.
Цитата:

переключает свойство display у объекта между block и none
Это называется тернарный оператор
ЗЫ наврено в нем и кроется проблема топикстартера.не проверял
вопрос к ТС, собственно, был

2. по ссылке описано как перехватывать onclick и отменять действие бруазера по умолчанию (переход по ссылке)


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