Функция скрытия jquery - PullRequest
       1

Функция скрытия jquery

3 голосов
/ 27 октября 2011

У меня есть общий запрос о функции jquery hide. Я огляделся и не могу найти прямой ответ. Я хочу знать, все ли объекты, скрытые при загрузке страницы, все еще загружаются, а затем скрываются или скрываются, а затем загружаются при вызове триггера. Кроме того, если объекты загружены, есть ли функции, которые будут загружать скрытый элемент только после его запуска?

Ответы [ 4 ]

6 голосов
/ 27 октября 2011

Если вы вызываете .hide() для чего-то внутри $(document).ready(), то элемент будет загружен с сервера как есть, а затем скрыт после полной загрузки страницы.

Это может привести к «вспышке» - видение элемента, отображаемого во время загрузки страницы, и исчезновение после загрузки. Лучший способ предотвратить это - убедиться, что он отображается сервером в стиле display:none;, если он изначально должен быть скрыт.

Обратите внимание, что .show() и .hide() не влияют на то, какие элементы существуют в DOM, то есть какие элементы загружены. Вместо этого они контролируют видимость элементов после загрузки страницы.

Если вы действительно хотите динамически загружать части страницы, то вам нужно использовать методы манипуляции DOM в jQuery, чтобы добавлять новые элементы на страницу в ответ на какое-то событие.

1 голос
/ 27 октября 2011

В дополнение к уже даным ответам.

Если вы используете jquery hide (), чтобы скрыть элемент, тогда этот элемент будет отображаться, если у пользователя отключен javascript - потому что hide () не произойдет. Если функциональность или необходимость показывать или скрывать зависит от отсутствия javascript, то неплохо бы справиться со сценарием. Некоторые примеры классов CSS.

.hide-if-no-js {display:none;}
.show-if-no-js {display:block;}
.hide {display:none;}

Который затем вы можете применить к элементу, в зависимости от того, хотите ли вы показать или скрыть элемент изначально - независимо от того, доступен ли javascript.

Скрыть, если js недоступен, скрыть, если js доступен:

<div id="aaa" class="hide-if-no-js">...</div>

Показать, что js недоступен, скрыть, если js доступен:

<div id="aaa" class="show-if-no-js">...</div>
$("#aaa").removeClass("show-if-no-js").addClass("hide");
0 голосов
/ 27 октября 2011

Я думаю, что содержимое объектов, которые вы скрываете с помощью функций jQuery.hide, всегда загружается. Потому что сначала ваша веб-страница будет загружена, а затем будет выполнен JavaScript. Если вы хотите, чтобы содержимое загружалось только тогда, когда оно отображается, вы должны выполнить ajax-вызов, чтобы загрузить содержимое или установить для div значение display: none initialy.

0 голосов
/ 27 октября 2011

Я не уверен, что понимаю, чтобы что-то скрыть с помощью jQuery, оно должно быть уже загружено на страницу, если только вы не создали его из javascript.Что вы подразумеваете под «загруженным», добавленным в DOM?

...