Javascript 使用jquery将html字符串加载到div中
我正试图将一块html加载到我的div中,但html字符串中的javascript在加载时只占50%左右,因此遇到了一些问题 我知道我可以使用jQuery的:Javascript 使用jquery将html字符串加载到div中,javascript,jquery,html,Javascript,Jquery,Html,我正试图将一块html加载到我的div中,但html字符串中的javascript在加载时只占50%左右,因此遇到了一些问题 我知道我可以使用jQuery的: $(div.html(htmlString) 将html加载到必要的div中。导致问题的html是在一个document ready块中完成的,我很好奇,在使用.html(..)时,是否执行了document ready代码,因为页面作为一个整体已经准备好,而加载的html(主要是jquery ui js)中可能没有 <html&g
$(div.html(htmlString)代码>
将html加载到必要的div中。导致问题的html是在一个document ready块中完成的,我很好奇,在使用.html(..)时,是否执行了document ready代码,因为页面作为一个整体已经准备好,而加载的html(主要是jquery ui js)中可能没有
<html>
<head>
<script src="..../jquery-ui.min.js"></script>
<script type="text/javascript"> $(function() { $("#tabs").tabs(); }); </script>
</head>
<body>
<div>......</div>
</body>
</html>
但这仍然不是100%可靠,因为加载必要的javascript所需的时间可能会有所不同。有没有办法确保加载的html的文档就绪状态一直等到jQueryUI脚本加载完毕?您应该始终将脚本和js文件放在正文的末尾。原因是,任何放在头部的内容都必须在加载主体之前完成,因此,将javascript放在头部通常是个坏主意。最好是安全的,在底部加上这个
同样,延迟也不会增加你在这里的机会
<html>
<head>
<title>hey you</title>
</head>
<body>
<div>......</div>
<script src="..../jquery-ui.min.js"></script>
<script type="text/javascript">
$(function(){
$("#tabs").tabs();
});
</script>
</body>
</html>
嘿,你
......
$(函数(){
$(“#制表符”).tabs();
});
发现了这个问题,John Doe在这个问题上的帖子帮助我们找到了答案-
jquery-ui.min.js是在insite脚本之后加载的,不管它们在页面上的什么位置(在头部或
标记之前)。我最后做的是使用$.ui
对jquery ui应用检查,并将async
属性添加到脚本标记中
<script async src=".../jquery-ui.min.js"></script>
加载jquery ui后,我就可以继续执行$(“#tabs).tabs();
调用
感谢您的评论和帖子!加载HTML时的代码在哪里?最坏的情况是,您可以将脚本
移动到正文中,就在
结束标记之前。此外,如果元素使用$(document.ready)加载到DOM中(function(){
,然后是$('.\tabs')。tabs();
必须在*HTML注入*之后出现*@ohgod为什么HTML只加载$(div).HTML(contents);很抱歉忽略了这一点。我也尝试过在标记之前将移动到正文中。仍然没有成功否,这是错误的。所有脚本都应该放在标题部分。使用$(document).ready(function(){})
否定了将脚本放在正文
标记末尾的必要性-它可以在标题
中更新,谢谢manseUK。@Leetylor愿意详细说明吗?我也不同意你的意见。@Leetylor这是错误的。脚本不需要放在标题中。出于传统,它们被放在标题中。Javascript将在解析过程中,无论是否在头部发现,都会在任何地方执行。如果你查看Twitter引导示例,你会发现它们在页面末尾包含javascript。这就不需要$().ready一旦解析器访问了这些脚本,DOM就已经准备好了。这样做还可以提高性能。请看这个问题:是的,这只是我的老学识。我已经读过了,我意识到不再是这种情况(脚本的放置)。但是,使用onLoad()或$(文档).ready应用于确保DOM已准备好进行操作。
<script async src=".../jquery-ui.min.js"></script>