17.01.2011, 22:33 | #1 |
Модератор
|
Вопросы по JS знатокам
Незамысловатый кодец такой)
Вопрос в следующем: почему при первом клике, после загрузки страницы, div не появляется, а только при втором? Спойлер
Код:
<html> <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <style type="text/css"> div#text { border-width: 1px; border-color: lightgrey; border-style: dashed; display: none; } a { color: black; border-bottom: 1px dashed lightgrey; outline: none; text-decoration: none; } </style> <script type="text/javascript"> function opendiv() { var text=document.getElementById('text'); if (text.style.display=='none') { text.style.display='block'; } else { text.style.display='none'; } } function closediv() { var text=document.getElementById('text'); if (text.style.display=='block') { text.style.display='none'; } } </script> </head> <body> <a href="#" onclick="opendiv()">Скрытый блок:</a> <div id="text" onclick="closediv()"> <p>Это скрытый блок</p> <p>Для закрытия кликните по нему</p> </div> </body> </html> |
18.01.2011, 01:38 | #2 |
Администратор
|
Посмотри, чему равен text.style.display при первом клике. Пустая строка. Чтобы он был равен 'none', явно укажи его с помощью inline-CSS.
Код HTML:
<div id="text" onclick="closediv()" style="display: none;">
P.S. Незачем дублировать код в двух функциях. Проще и эффективнее передавать в одну функцию флаг open/close.
__________________
[BATTLE]SERVER |
Благодарности: 1 | SoaT (18.01.2011) |
18.01.2011, 17:57 | #4 | ||
Модератор
|
Оффтоп
Добавлено через 5 минут А, ну понятно. Тут вообще всё работает на первой, так сказать, универсальной функции. Просто изучаю по youtube-урокам, а там так, видимо для понимания основ, сделано. Последний раз редактировалось SoaT; 18.01.2011 в 17:53. |
||
18.01.2011, 19:36 | #5 |
Администратор
|
__________________
[BATTLE]SERVER |
Благодарности: 1 | SoaT (18.01.2011) |
18.01.2011, 21:40 | #6 |
Местный
|
SoaT, Не понял, зачем такой суровый код?
Спойлер
Код:
<script type="text/javascript"> function show(){ var show = document.getElementById('show_hide').style.display; if (show == 'none') { document.getElementById('show_hide').style.display='block'; document.getElementById('linkdel').innerHTML='Скрыть'; } if (show == 'block') { document.getElementById('show_hide').style.display='none'; document.getElementById('linkdel').innerHTML='Показать'; } } </script> <div style="width:700px;"> <div style="padding:3px;text-align:left;border:1px solid gray;background:#f5f5f5;cursor:pointer;" onClick="show();" id="linkdel">Показать</div> <div style="padding:2px;text-align:left;border:1px solid gray;background:#f5f5f5;display:none;" id="show_hide"> Скрытый текст </div> </div>
__________________
wish you were here Последний раз редактировалось SuperSkat; 19.01.2011 в 00:08. |
Метки |
вопрос, code, javascript, сайт, сайтростроение |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
"Новости Intel, о Intel" | Vadim | Новости и обзоры | 584 | 07.09.2016 14:18 |
Вопросы по CSS знатокам | dar | Web-программирование / Сайтостроение | 39 | 25.10.2010 12:23 |
Вопросы знатокам по PHP | dar | Web-программирование / Сайтостроение | 4 | 23.07.2010 01:27 |
Вопросы Путину | iva | На завалинке | 49 | 14.06.2010 18:28 |
Вопросы и ответы (F.A.Q.) | MDM | Mozilla Firefox | 5 | 13.11.2006 21:09 |