| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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. Не пойму в чём дело. Наверное, я где-то отключила логику и сделала глупую ошибку. Помогите, пожалуйста.
|
| Автор: 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:20 |
Для нахождения «реальных» значений CSS-свойств элемента существуют другие методы. Например, window.getComputedStyle() |
| Автор: JeannedArc1998 28.11.2012, 19:28 | ||
Хмм.. Спасибо за подсказку.. А то не люблю, когда в html-файле ещё и css прописан.. Кстати, ещё один вопрос: у меня параллельно к этому диву, есть ещё один. И этот второй див почему-то не показывается, пока я не включу первый. с z-index вроде всё в порядке.. В чём может быть ещё причина? |
| Автор: Amphiluke 28.11.2012, 19:34 |
Это не подсказка, а так — к сведению. Для вашей задачи можно обойтись без вычислений скомпилированных стилей. В 17-й строчке, как всегда. |
| Автор: Amphiluke 28.11.2012, 19:51 |
Если что, это намек на то, что не видя примера, назвать причину практически нереально. |
| Автор: JeannedArc1998 14.12.2012, 23:09 | ||
Это было понятно ))) Ошибка была жуткой. Скобку не закрыла, балда ) |