jQuery的.hide()函数隐藏元素的速度太慢。

3

当我使用jQuery的.hide()时,它无法快速隐藏元素。我可以看到它们全部加载并为另一个正在运行的脚本组织。这看起来非常尴尬。

有没有办法在文档加载之前使.hide()实际隐藏元素?我不想使用display:none,因为这会对SEO产生负面影响。


1
.hide() 将 CSS 样式 display 设置为 none... - Joseph Marikle
这个 Stack Overflow 的回答可能会有帮助:https://dev59.com/NErSa4cB1Zd3GeqPYa5Z#1856038 - orip
1
如果您想在加载元素之前隐藏它,为什么不使用CSS而不是JavaScript?这样会更快。 - Ehtesham
2
display none 和 .hide() 基本上是一样的。如果你非常烦恼,你可以使用 CSS 透明度,或设置 CSS 位置或边距,或任何你能想到的其他东西来把元素移动到屏幕外,然后在文档加载时将其移回屏幕内。不过,这似乎是很麻烦的方式来避免使用 display none,而且 display none 的解决方案也相当跨浏览器。 - adeneo
2个回答

1

在文档完成至少部分加载之前,jQuery 无法执行任何操作 - 这就是 ready() 函数的工作原理。但是,您可以使用纯 JavaScript 在 jQuery ready 函数之前执行以隐藏要隐藏的元素。搜索引擎通常会忽略 JavaScript,因此您是安全的。

既然我们正在谈论 JavaScript...你要隐藏的 "东西" 是由脚本加载还是静态的(在已加载文档的上下文中)?如果内容是通过 Ajax 加载的,我不确定搜索引擎是否会看到它,这种情况下,您可能只需使用 CSS 将其隐藏即可。


我想你可以在不使用ready()函数的情况下运行jQuery... 但是这很可能会运行得太快,错过页面元素,因此无法正确工作。 使用纯JavaScript-无需等待! - Surreal Dreams

0
你什么时候调用 hide() 方法?在文档准备好后吗?或者在插入元素的 HTML 后直接调用 hide() 方法?
类似这样:
 <div id="element">your element</div>
<script type="text/javascript"> $("#element").hide(); </script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接