Показать сообщение отдельно
  #3 (permalink)  
Старый 22.04.2012, 12:04
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

bpystep, разве так трудно привести пример по сути проблемы?
Тот код который вы привели работает.
Как я полагаю, class="info" делает невидимым ваш div (этого описания вы как раз и не привели), а в том коде который вы привели div отображается.
Как правильно направил вас Octane, если что-то не получается, нужно тестировать (правда, не всегда бывает очевидно как это делать), с тестом или без можно понять, почему приведённый вами код работает.

А теперь по сути проблемы.
Насколько я понимаю, проблема здесь заключается в том, что задание свойства display в тегах <style></style> не приводит к установке свойства div.style.display, хотя отображение корректное (почему так происходит сам хотел бы узнать), собственно установка этого свойства происходит после первого клика, поэтому дальше всё "работает как часы".
Вариантом решения данной ситуации является задание этого свойства в атрибуте style самого элемента, либо явная его установка в каком либо месте кода.

Код:
<script>
function viewInfo() {
  var div = document.getElementById('info');
  if (div.style.display == 'none') 
    div.style.display = 'block';
  else 
    div.style.display = 'none';
}
</script>

<button onclick="viewInfo()">info</button>
<div id="info" style="display: none; background: grey">info</div>
Ответить с цитированием