Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не сразу срабатывает скрипт на странице (https://javascript.ru/forum/misc/53853-ne-srazu-srabatyvaet-skript-na-stranice.html)

Dan Atst 21.02.2015 09:39

Не сразу срабатывает скрипт на странице
 
Всем добрый день! На данном сайте нашел скрипт "Открытие/скрытие блока при нажатии на ссылку". Поставил себе на сайт, но проблема в том, что он срабатывает не сразу. Т.е. как только вы загрузили страницу, блоки будут открываться только после двойного нажатия на ссылку, в последующие разы нормально, т.е. при одном нажатии; В чем проблема не понимаю. Вот код скрипта:
function openbox(id){
    display = document.getElementById(id).style.display;

    if(display=='none'){
       document.getElementById(id).style.display='block';
    }else{
       document.getElementById(id).style.display='none';
    }
}


Пример вызова блока:
<a href="#" class="cause c1" onclick="openbox('cause1'); return false">Динамично развивающаяся экономика</a>
<div id="cause1">Текст блока</div>


:help:

danik.js 21.02.2015 09:47

Цитата:

Сообщение от Dan Atst
В чем проблема не понимаю

style элемента - это то, что записано в атрибуте style. То есть, если у тебя блок скрыт через таблицу стилей, а не через атрибут style, то условие не выполнится, и блок "скроется" второй раз, уже через атрибут style. И только при следующем клике условие уже выполнится.

Изначально style.display равен пустой строке, при этом элемент скрыт через таблицу стилей. Так что нужна такая проверка:
if (display != 'block')

danik.js 21.02.2015 09:48

И не проебывай ключевое слово var, а то боженька покарает!:nono:

Dan Atst 22.02.2015 08:44

спасибо!


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