jquery隐藏功能

时间:2011-10-27 09:00:17

标签: jquery hide

我有关于jquery hide函数的一般查询。我环顾四周,似乎无法找到答案。我想知道在页面加载时隐藏的对象是否仍然被加载然后隐藏或隐藏,然后在调用触发器时加载。此外,如果加载了对象,是否有任何函数只会在触发后加载隐藏元素?

4 个答案:

答案 0 :(得分:6)

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

这可能会导致'闪烁' - 在页面加载时看到元素出现,然后在加载后消失。防止这种情况的最佳方法是确保服务器使用display:none;样式呈现它,如果它最初是隐藏的那样。

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

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

答案 1 :(得分:1)

除了已经给出的答案之外。

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

答案 2 :(得分:0)

我不确定我理解,要隐藏jQuery的东西,它必须已经加载到页面中,除非你从javascript创建它。 “加载”是什么意思,添加到DOM?

答案 3 :(得分:0)

我认为您使用jQuery.hide函数隐藏的对象的内容始终会被加载。因为首先会加载您的网页,之后将执行javascript。如果您只想在显示内容时加载内容,则应执行ajax调用加载内容或将div初始化为display: none

相关问题