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

#jquery #hide

#jquery ( jquery ) #скрыть

Вопрос:

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

Комментарии:

1. Это зависит от того, где вы это называете.

2. Позвольте мне расшириться. У меня есть определенный div, который показывает определенные элементы. У меня есть скрытые элементы в div при загрузке страницы, и как только div расширяется с помощью jquery с помощью вызова кнопки, скрытые элементы отображаются в увеличенном div. Загружаются ли эти элементы по-прежнему в фоновом режиме, даже если они скрыты с помощью функции hide() ?

3. если вы сделаете это в готовом документе, будет достаточно забавно сначала скрыть его после загрузки DOM. И display:none (что в основном и делает функция hide) не ограничивает загрузку содержимого — только видимость. Таким образом, вы должны либо выполнить фильтрацию на стороне сервера, либо добавить ее с помощью JS при загрузке.

4. Как бы я мог создать DIV, который загружается только после его вызова в Jquery?

Ответ №1:

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

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

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

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

Ответ №2:

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

Если вы используете 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");
 

Ответ №3:

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

Ответ №4:

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