Показать сообщение отдельно

  #6  
Старый 16.04.2008, 16:49
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

После загрузки страницы, как только элементы "инициализировались", свойство [ Element ].style.display, если не было указано явно, будет пустой строкой:
Код:
<script>

window.onload = function()
{
  var node = document.getElementById('dummy');
  alert('#' + node.style.display + '#'); // Покажет ##
}
</script>

<div id="dummy"></div>
И следующий код будет возвращать ложь всегда, за исключением тех случаев, когда мы намеренно установим это свойство в "undefined":
Код:
document.getElementById(element_id).style.display == undefined
Можно привести исходную функцию примерно к такому виду:
Код:
function toggle(id) 
{
  var node = document.getElementById(id), s;
  if(!node) return;
  s = node.style;
  s.display = (s.display != 'none' ? 'none':'');
}
Стоит обратить внимание, что свойству display намеренно не присваивается значение 'block'. У столбца таблицы, например, это значение должно быть 'table-cell', и в поддерживающих браузерах может сбиться верстка.

Лучший вариант, конечно, использовать css и менять только имя класса.
 
Ответить с цитированием