这是代码。
我不能申请display:none;
$(document).ready(function() {
$("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open");
});
这是代码。
我不能申请display:none;
$(document).ready(function() {
$("#LeftNav li.navCatHead").not(":first").siblings("li").hide().end().end().first().addClass("open");
});
为什么不能设置“显示:无”?不确定您的情况,但您可能可以稍微反转工作流程
而不是最初显示列表,然后根据某些条件隐藏某些列表,最初尝试隐藏(显示:无)列表,然后根据某些条件显示某些列表。
这样你就不会得到一些“显示然后消失”的元素。
我经常发现一个不错的选择display:none;
是在加载时将不透明度设置为 0。
$("#LeftNav li.navCatHead").not(":first").siblings("li").css('opacity','0').end().end().first().addClass("open");
但是,与其使用这么长的字符串来查找选择器,我只需为每个类添加一个新类并将其设置为opacity: 0;
页面加载,因为它会快得多。
不要等待文件准备好。您可以将您的 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>
与其应用display:none
, (调用$.hide()
),不如用一个空 div 替换您尝试隐藏的项目,该 div 设置为与您要隐藏的任何内容相同的大小?
我遇到了同样的问题,我使用了 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
});
});
希望它有所帮助,这是我第一次回答关于我们最喜欢的社区的问题。干杯。