1

这是代码。

我不能申请display:none;

$(document).ready(function() {
    $("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open");
});
4

5 回答 5

2

为什么不能设置“显示:无”?不确定您的情况,但您可能可以稍微反转工作流程

而不是最初显示列表,然后根据某些条件隐藏某些列表,最初尝试隐藏(显示:无)列表,然后根据某些条件显示某些列表。

这样你就不会得到一些“显示然后消失”的元素。

于 2010-04-29T16:09:13.527 回答
1

我经常发现一个不错的选择display:none;是在加载时将不透明度设置为 0。

$("#LeftNav li.navCatHead").not(":first").siblings("li").css('opacity','0').end().end().first().addClass("open");

但是,与其使用这么长的字符串来查找选择器,我只需为每个类添加一个新类并将其设置为opacity: 0;页面加载,因为它会快得多。

于 2010-04-29T15:44:58.083 回答
1

不要等待文件准备好。您可以将您的 jQuery 代码放在页面底部的结束 body 标记之前,或者直接放在相关元素之后。

            <!-- ...other code... -->
            <li>Sibling</li>
        </ul>
        <script type="text/javascript">
            // this should work...
            $("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open");
        </script>
        <div class='content'>more stuff.</div>
    </body>
</html>
于 2010-04-29T18:07:18.013 回答
1

与其应用display:none, (调用$.hide()),不如用一个空 div 替换您尝试隐藏的项目,该 div 设置为与您要隐藏的任何内容相同的大小?

于 2010-04-29T15:40:08.233 回答
0

我遇到了同样的问题,我使用了 JQuery 的.hide()函数,但是因为我将 at 放在<script>body 的末尾,所以元素在瞬间可见,直到浏览器可以到达代码末尾并运行隐藏函数。

对于解决方案,我提高了.hide()函数的速度,直到它快到用户看不到它为止。

它对我有用。

所以现在我的函数看起来像这样。

    $(document).ready(function(){
        $("#ids-or-classes").each(function(){ //.each is for multiple ids and classes 
        $(this).hide(0.00001); //lower the number faster the speed
        });
    });

希望它有所帮助,这是我第一次回答关于我们最喜欢的社区的问题。干杯。

于 2021-09-10T06:40:36.623 回答