我有一个关于jquery hide函数的一般性问题。我搜索了一下,似乎找不到直接的答案。我想知道在页面加载时隐藏的对象是否仍然被加载并隐藏,还是在触发器被调用后才加载。另外,如果这些对象已经被加载,是否有任何函数只会在触发器被调用后才加载隐藏的元素?
我有一个关于jquery hide函数的一般性问题。我搜索了一下,似乎找不到直接的答案。我想知道在页面加载时隐藏的对象是否仍然被加载并隐藏,还是在触发器被调用后才加载。另外,如果这些对象已经被加载,是否有任何函数只会在触发器被调用后才加载隐藏的元素?
$(document).ready()
中对某个元素调用.hide()
,则该元素将按原样从服务器加载,然后在页面完全加载后隐藏。display:none;
的样式。.show()
和.hide()
不会影响DOM中存在哪些元素(即哪些元素已加载)。相反,它们控制项目在页面加载后的可见性。除了已经给出的答案之外,还有一些需要注意的地方。
如果您使用jquery hide()来隐藏一个元素,那么如果用户关闭了javascript,该元素将被显示出来,因为hide()不会发生。如果缺少javascript会影响显示或隐藏的功能或需求,则应该处理这种情况。以下是一些示例CSS类。
.hide-if-no-js {display:none;}
.show-if-no-js {display:block;}
.hide {display:none;}
然后,您可以将其应用于元素,具体取决于您是否希望最初显示或隐藏该元素 - 无论 JavaScript 是否可用。
如果 JavaScript 不可用,则隐藏;如果 JavaScript 可用,则隐藏:
<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");
我不确定我理解了,使用jQuery隐藏某些内容时,它必须已经在页面中加载,除非你通过JavaScript创建它。你所说的“加载”,是指添加到DOM中吗?
jQuery.hide
函数隐藏的对象内容始终会被加载。因为首先您的网页将被加载,然后才会执行 JavaScript。当您只想在显示内容时加载内容时,应进行 ajax 调用以加载内容或将 div 设置为 display: none
初始状态。