Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Спрашиваю display:none? JS: Нет. Css: да. Почему?


Автор: JeannedArc1998 28.11.2012, 19:06
Вот такие пироги.

Нарисовала див, скрыла его с помощью 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';
}

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

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

Мдааа... Неудобно-то как. Спасибо. Уже исправила smile smile 

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

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

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

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

Хмм.. Спасибо за подсказку.. А то не люблю, когда в html-файле ещё и css прописан.. Кстати, ещё один вопрос:
у меня параллельно к этому диву, есть ещё один. И этот второй див почему-то не показывается, пока я не включу первый. с z-index вроде всё в порядке.. В чём может быть ещё причина? 

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

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

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

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


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

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

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

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

Это было понятно ))) Ошибка была жуткой. Скобку не закрыла, балда ) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)