X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Простой hide и show на js
RealPeha_hb
RealPeha_hb
Topic Starter сообщение 23.2.2016, 23:44; Ответить: RealPeha_hb
Сообщение #1


Использую самый банальный способ осуществления возможности скрыти/показать определенного блока:
<style>
#lol {display: none;}
</style>
<script>
function openblock(){
if (document.getElementById("lol").style.display=="block") {
document.getElementById("lol").style.display="none";
} else {
document.getElementById("lol").style.display="block";
}
}
</script>
<button onclick="openblock()">Кнопочка</button>
<div id="lol">Текст</div>

Все норм работает, но есть одно но! После загрузке страницы, мне приходиться нажимать ДВА раза на кнопку, прежде чем скрипт запустится и блок раскроется, дальше уже все работает с одного клике до перезагрузки страницы! Это не очень удобно и иногда раздражает) Вообще не могу понять в чем проблема! Что делать?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Den1xxx
Den1xxx
сообщение 24.2.2016, 8:51; Ответить: Den1xxx
Сообщение #2


(RealPeha_hb @ 24.2.2016, 01:44) *
Все норм работает, но есть одно но! После загрузке страницы, мне приходиться нажимать ДВА раза на кнопку, прежде чем скрипт запустится и блок раскроется, дальше уже все работает с одного клике до перезагрузки страницы! Это не очень удобно и иногда раздражает) Вообще не могу понять в чем проблема! Что делать?

Это потому, что элемент с id="lol" должен грузиться ДО скрипта, а не после, т.к. в Вашем случае пытаетесь управлять элементом, который ещё не загружен.
Именно поэтому часто советуют все скрипты, управляющие DOM, писать перед закрывающим тегом </body>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 24.2.2016, 10:56; Ответить: Degradator
Сообщение #3


Это потому, что элемент с id="lol" должен грузиться ДО скрипта, а не после


Сомневаюсь что он такой быстрый Джо, что успевает кликнуть по кнопке в промежуток между загрузкой двух дом нод. А вот что условие неправильное, в этом я не сомневаюсь. Стили ты задаешь через css, а сравнение делаешь через inline. Не надо так делать. Читай про

https://developer.mozilla.org/en-US/docs/We...etComputedStyle

Или задавай свой стиль 'hidden' не через css, а через inline

<div id="lol" style="display: none">lol</div>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
RealPeha_hb
RealPeha_hb
Topic Starter сообщение 24.2.2016, 17:33; Ответить: RealPeha_hb
Сообщение #4


(Degradator @ 24.2.2016, 12:56) *
Или задавай свой стиль 'hidden' не через css, а через inline

Ура! Спасибо большое, теперь работает так как надо)
Тему можно закрыть

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Простой способ заработать на пиво за 5 минут
Халява для граждан РФ
17 MaxChemist 3147 15.9.2022, 17:42
автор: MaxChemist
Открытая тема (нет новых ответов) Нужен простой скрипт выставления ставок в Яндекс.Директ
1 taxi2008 1354 12.11.2020, 3:14
автор: Coffee
Открытая тема (нет новых ответов) Нужен простой лендинг с формой обратной связи
10 Kuzzma 2601 11.9.2020, 21:33
автор: Kuzzma
Открытая тема (нет новых ответов) Нужно сделать простой и легкий сайт
21 dota 5698 13.7.2020, 12:59
автор: Mistic
Открытая тема (нет новых ответов) Рекламная CPA сеть PUSH.SHOW - прямая монетизация вашего трафика
3 PushShow 2051 30.12.2019, 18:33
автор: PushShow


 



RSS Текстовая версия Сейчас: 26.4.2024, 0:54
Дизайн