Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Спрашиваю display:none? JS: Нет. Css: да. Почему? 
V
    Опции темы
JeannedArc1998
Дата 28.11.2012, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 28.11.2012

Репутация: нет
Всего: нет



Вот такие пироги.

Нарисовала див, скрыла его с помощью CSS через display: none. Через js говорю: если display:none, делай то-то, заодно сделай display:block. else должен сделать display:none, а так же ему прописала alert('b') для проверки. И всегда сначала срабатывает else, хотя див явно скрыт, и только после повторного щелчка срабатывает наконец-то if. Не пойму в чём дело. Наверное, я где-то отключила логику и сделала глупую ошибку. Помогите, пожалуйста.

Код


    if (document.getElementById('divblabla').style.display == 'none') {
    alert('a');
    document.getElementById('divblabla').style.display = 'block'
 //здесь делается ещё кое-что, не связанное с дивом
}

else {
    alert('b');
    document.getElementById('divblabla').style.display = 'none';
}

PM MAIL   Вверх
Amphiluke
Дата 28.11.2012, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



JavaScript`овый объект style отражает лишь те стили элемента, которые либо установлены в атрибуте style тега, либо заданы непосредственно в скрипте. Стили, указанные в CSS, на объект style прямо не влияют.
По умолчанию всегда element.style.display === "" (если иное значение не прописано инлайново в теге).
PM   Вверх
JeannedArc1998
Дата 28.11.2012, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 28.11.2012

Репутация: нет
Всего: нет



Цитата(Amphiluke @ 28.11.2012,  19:14)
JavaScript`овый объект style отражает лишь те стили элемента, которые либо установлены в атрибуте style тега, либо заданы непосредственно в скрипте. Стили, указанные в CSS, на объект style прямо не влияют.
По умолчанию всегда element.style.display === "" (если иное значение не прописано инлайново в теге).

Мдааа... Неудобно-то как. Спасибо. Уже исправила smile smile 
PM MAIL   Вверх
Amphiluke
Дата 28.11.2012, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(JeannedArc1998 @  28.11.2012,  23:17 Найти цитируемый пост)
Неудобно-то как.

Для нахождения «реальных» значений CSS-свойств элемента существуют другие методы. Например, window.getComputedStyle()
PM   Вверх
JeannedArc1998
Дата 28.11.2012, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 28.11.2012

Репутация: нет
Всего: нет



Цитата(Amphiluke @ 28.11.2012,  19:20)
Цитата(JeannedArc1998 @  28.11.2012,  23:17 Найти цитируемый пост)
Неудобно-то как.

Для нахождения «реальных» значений CSS-свойств элемента существуют другие методы. Например, window.getComputedStyle()

Хмм.. Спасибо за подсказку.. А то не люблю, когда в html-файле ещё и css прописан.. Кстати, ещё один вопрос:
у меня параллельно к этому диву, есть ещё один. И этот второй див почему-то не показывается, пока я не включу первый. с z-index вроде всё в порядке.. В чём может быть ещё причина? 
PM MAIL   Вверх
Amphiluke
Дата 28.11.2012, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(JeannedArc1998 @  28.11.2012,  23:28 Найти цитируемый пост)
Спасибо за подсказку..

Это не подсказка, а так — к сведению. Для вашей задачи можно обойтись без вычислений скомпилированных стилей.

Цитата(JeannedArc1998 @  28.11.2012,  23:28 Найти цитируемый пост)
В чём может быть ещё причина?

В 17-й строчке, как всегда.


PM   Вверх
Amphiluke
Дата 28.11.2012, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Amphiluke @  28.11.2012,  23:34 Найти цитируемый пост)
В 17-й строчке, как всегда.

Если что, это намек на то, что не видя примера, назвать причину практически нереально. smile
PM   Вверх
JeannedArc1998
Дата 14.12.2012, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 28.11.2012

Репутация: нет
Всего: нет



Цитата(Amphiluke @ 28.11.2012,  19:51)
Цитата(Amphiluke @  28.11.2012,  23:34 Найти цитируемый пост)
В 17-й строчке, как всегда.

Если что, это намек на то, что не видя примера, назвать причину практически нереально. smile

Это было понятно ))) Ошибка была жуткой. Скобку не закрыла, балда ) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.