我有一个功能可以在文档加载之前有条件地隐藏控件。如果我将此功能放在$(document).ready
上,我会看到页面闪烁以有条件地隐藏控件。我想知道是否有一个事件可以在触发$(document).ready
之前调用。
回答
如前所述别人做这样的事情
<div id="test" class="hidden"> my hidden div tag </div>
.hidden
{
display:none;
}
文档中
。准备就绪后,就可以显示出,这是等价的onload,它等待直到HTML被加载在这里
$(document).ready(function() {
$('#test').show();
});
的jsfiddle例如
常见问题。使用CSS将控件默认隐藏,然后在$(document).ready
上使用JS来决定使哪些控件可见。不会有闪烁。它看起来像是逐步加载页面的相应部分。
在文档准备就绪之前,您无法安全地运行JS,并且在运行JS之前文档的某些部分将可见。因此,唯一的解决方案是确保所有非闪烁元素默认隐藏,然后您只显示您想要看到的元素。
要做到这一点,只是把一个公共类上的所有动态元素的最简单方法:
<div id="myControl1" class="initiallyHidden"></div>
,并使用CSS来确保他们都开始了隐患:
.initiallyHidden {display: none;}
然后你的javascript会覆盖,当它决定一个元素应该是可见的:
document.getElementById("myControl1").style.display = "block";
当我需要隐藏着什么JavaScript是加载之前我把它藏在CSS像这样:
display:none;
或:
visibility: hidden;
您也可以结合使用条件下使用Javascript功能来揭示它,如果需要的话。
或自jquery被提及:'class =“ui-helper-hidden-accessible”' –
调用JavaScript函数在旁边的HTML元素
例如:
<span></span>
<script> call JS function</script>
谢谢,用这种方法将无法做到一般的事情。如果我必须隐藏并显示多个元素,那么使用您所展示的元素可能不是正确的选择 –
已达成一致,但您可以引用页面的所有外部JavaScript引用末尾。并在所有元素之后调用JavaScript函数。这将保存引用的文件加载时间,然后您可以在加载所有文件之前运行该函数。 –
你可以只打开HTML之后要condionnaly隐藏的脚本标记(jQuery的前必须申报然后直接调用hide,而不是在$(document)里面。像这样:
<div id="toHide">Lorem ipsum</div>
<script type="text/javascript">
$("#toHide").hide();
</script>
你必须把你的元素之前运行你的JavaScript
<div>hi</div>
<script>
$("div").css('background-color', '#EEE');
</script>
- 1. Window.onload事件和$(document).ready()
- 2. 为什么window.onload事件发生在$(document).ready之前?
- 3. 在jQuery中列出Document Ready事件
- 4. 使用$(document).ready()事件防止FOUC
- 5. $(document).ready(function(){...})在插件脚本加载之前运行
- 6. 在$(document).ready()之后调用什么jQuery事件?
- 7. jsdom和$(document).ready
- 8. $(document).ready not working
- 9. $(document).ready shorthand
- 10. jQuery(document).ready和'''''
- 11. JQuery:Rebind $(document).Ready()
- 12. window.open和$(document).ready
- 13. JQuery - 在window.location之后使用$(document).ready()
- 14. 在$(document).ready()之外使用jQuery
- 15. JQuery(document).ready在文档准备好之前仍然运行?
- 16. 在$(document).ready()之前运行一个函数触发
- 17. jQuery $(document).ready()not firing
- 18. 函数out $('document')。ready()
- 19. $(document).ready似乎着火但不能注册事件
- 20. jQuery:如何合并两个事件:$(document).ready + $(“#superid a”).hover?
- 21. Sys.Application.add_load()与$(document).ready()vs. pageLoad()
- 22. .click()不适用于(document).ready()
- 23. jQuery(document).ready()+等待焦点
- 24. 一个或多个$(document).ready
- 25. 如何使用$(document).ready
- 26. JSF替代品为$(document).ready
- 27. ASP.Net,jQuery - $(document).ready(function()not firing
- 28. IE7 jQuery(document).ready()问题
- 29. $(document).ready()太早触发
- 30. history.back();不触发$(document).ready();
你不能将它们设置为默认隐藏,并只显示'$(document).ready'上需要的那些? – Oded
当你说默认情况下隐藏,你是否正在尝试使用css来隐藏它们。如果我这样做,jquery能够显示和隐藏它们吗? –
是的,我的意思是CSS,是的,jQuery可以。 – Oded