jquery - 为什么 jQuery hide 不是立即隐藏(因页面加载而延迟)

标签 jquery hide delay

我有什么:

我使用 jQuery 隐藏无序列表中的最后几个列表项。

我的问题:

列表项会显示在页面上,直到页面加载并且 jQuery 启动(这是不可取的)。

编辑:我无法编辑 HTML。由于我无法有选择地添加类,因此我不能依赖纯 CSS。我使用 jQuery 选择器来定位最后两个列表项。

我的代码:

无论我使用 hide() 函数还是 addclass() + display:none,我都会遇到同样的问题。

<ul id="some_menu">
    <li><a href="#">Enkidu</a></li>
    <li><a href="#">Gilgamesh</a></li>
    <li><a href="#">Epic</a></li>
    <li><a href="#">Sumeria</a></li>
    <li><a href="#">Anunnaki</a></li>
</ul>

<script type="text/javascript">
    jQuery(document).ready(function() {
        //jQuery('ul#some_menu li:gt(2)').addClass("hide_menu_link");
        jQuery('ul#some_menu li:gt(2)').hide();
    });
</script>

<style type="text/css">
    .hide_menu_link{
        display:none;
    }
</style>

这是 JSFIDDLE 上的代码,但它没有重现问题:http://jsfiddle.net/dominornovus/pB8Mb/2/

最佳答案

通过使用jQuery(document).ready,您可以告诉 jQuery 在执行之前等待文档准备好。因此,它确实会等待页面准备好(加载)然后再采取行动。

就像其他人所说,如果您希望某些项目在页面开始时隐藏,而其他一些项目可用,您应该反转逻辑,从隐藏的所有内容开始,然后在文档准备好时显示您想要显示的内容。

关于jquery - 为什么 jQuery hide 不是立即隐藏(因页面加载而延迟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003128/

相关文章:

javascript - 延迟jquery不起作用

java - 如何将 Waze 流量​​数据集成到网站中?

jquery - 使用 jQuery.load() 函数加载图像

javascript - jQuery 回调触发得太早

css - 需要隐藏卡片边缘但透明才能看到背景?

mysql - 使用 JPA 或中间件延迟写入数据库

javascript - 如何使用 AJAX 在页面内调用 PHP 函数

ios - 隐藏搜索显示 Controller 的搜索栏

react-native - Detox:如何测试多行 TextInput

javascript - 如何在 jQuery 中获得正确的时间和顺序