Что не так с этим кодом Javascript? - PullRequest
0 голосов
/ 09 января 2010

Я считаю, что что-то в этом фрагменте кода неправильно закодировано, что делает его несовместимым с XHTML 1.0 Transitional.

Фрагмент кода сворачивает div, а затем при щелчке они расширяются.

Может кто-нибудь увидеть, что может быть не так?

<script type="text/javascript">

function toggle(div){
el = document.getElementById(div);
    if (el.style.display == 'none')
    {
        el.style.display = '';
    } else {
        el.style.display = 'none';
    }
}

</script>

У меня есть это до тега <BODY>. Если я удаляю DOCTYPE из другого меню, у меня перестает работать, но строки по умолчанию расширяются и не свернуты.

Ответы [ 4 ]

2 голосов
/ 09 января 2010
  1. Вы должны проверить, допустим ли переданный аргумент (например, не undefined, пустая строка и т. Д.).
  2. Вы должны проверить, нашел ли document.getElementById(div) элемент (например, даже действительное имя не будет работать во время загрузки документа, и <script> находится в источнике раньше, чем элемент, на который вы ссылаетесь).
  3. Вы создаете глобальную переменную el (поставьте var перед назначением).
  4. W3C рекомендует по возможности избегать переходного DTD, и сегодня можно не использовать <font> и bgcolor. Используйте XHTML Strict , если вы не знаете, что такое MIME-тип, а затем используйте HTML5.
0 голосов
/ 09 января 2010

В результате возникла проблема с простым атрибутом display css в div. Произошла ошибка разметки.

0 голосов
/ 09 января 2010

Вы не должны устанавливать style.display = '', а вместо этого устанавливать 'block', 'inline' или 'table-row'

0 голосов
/ 09 января 2010

Вместо el.style.display = ''; попробуйте el.style.display = 'block';.

...