jquery隐藏函数

发布于 2024-12-12 14:34:54 字数 122 浏览 1 评论 0原文

我对 jquery hide 函数有一个一般性疑问。我环顾四周,似乎找不到直接的答案。我想知道页面加载时隐藏的对象是否仍然加载然后隐藏,或者隐藏然后在调用触发器后加载。另外,如果加载了对象,是否有任何函数只会在触发后加载隐藏元素?

I have a general query about the jquery hide function. I have looked around, and cant seem to find a straight answer. I want to know if the objects being hidden on page load are still loaded in and then hidden, or hidden and then load once a trigger is called. Also, if the the objects are loaded, are there any functions that will only load the hidden element once it is triggered?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

深爱不及久伴 2024-12-19 14:34:54

如果您对 $(document).ready() 内的某些内容调用 .hide(),则该元素将从服务器按原样加载,然后隐藏一次页面已完全加载。

这可能会导致“闪烁”——在页面加载时看到该元素出现,然后在加载后消失。防止这种情况的最佳方法是确保服务器以 display:none; 样式呈现它(如果它最初打算隐藏)。

请注意,.show().hide() 不会影响 DOM 中存在哪些元素 - 即加载哪些元素。相反,它们在页面加载后控制项目的可见性。

如果您确实想要动态加载页面的某些部分,那么您需要使用 jQuery 的 DOM 操作方法向页面添加新元素以响应某些事件。

If you call .hide() on something inside $(document).ready(), then the element will be loaded as-is from the server, and then hidden once the page has completely loaded.

This can result in a 'flash' - seeing the element appear whilst the page is loading, then disappear once it has loaded. The best way to prevent this is to ensure it is rendered by the server with a style of display:none; if it is meant to be hidden initially.

Note that .show() and .hide() do not affect which elements exist in the DOM - i.e. which elements are loaded. Instead, they control the visibility of items once the page has loaded.

If you actually want to dynamically load in parts of the page, then you need to use jQuery's DOM manipulation methods to add new elements to the page in response to some event.

ぶ宁プ宁ぶ 2024-12-19 14:34:54

作为已经给出的答案的旁白。

如果您使用 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");

As an aside to the answers already given.

If you use jquery hide() to hide an element then the element will be displayed if the user has javascript turned off - because the hide() won't happen. If the functionality or the need to show or hide is affected by the absence of javascript then its a good idea to cope with the scenario. Some example CSS classes.

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

Which you can then apply to the element, depending if you want to show or hide the element initially - regardless of whether javascript is available.

Hide if js is unavailable, hide if js is available:

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

Show is js is unavailable, hide if js is available:

<div id="aaa" class="show-if-no-js">...</div>
$("#aaa").removeClass("show-if-no-js").addClass("hide");
×纯※雪 2024-12-19 14:34:54

我不确定我是否理解,要使用 jQuery 隐藏某些内容,它必须已经加载到页面中,除非您从 javascript 创建它。添加到 DOM 中的“已加载”是什么意思?

I'm not sure I understand, to hide something with jQuery, it has to be already loaded in the page, unless you create it from the javascript. What do you mean by 'loaded', added to the DOM?

橘亓 2024-12-19 14:34:54

我认为使用 jQuery.hide 函数隐藏的对象的内容始终会加载。因为首先您的网页将被加载,然后 JavaScript 将被执行。当您只想在显示内容时加载内容时,您应该执行 ajax 调用来加载内容或将 div 设置为 display: none 初始值。

i think the content of the objects you hide with the jQuery.hide functions are always loaded. Because first your webpage will be loaded and after that the javascript will be executed. When you only want to content to be loaded when it is shown you should do an ajax call the load the content in or set the div to display: none initialy.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文