我正在从它的官方文档中学习jQuery。我被$(document).ready
认定了。我有以下代码:
$(document).ready(function(){
console.log('Document:READY');
$.get('script.js', function(){
console.log('Script Loaded');
});
});
我从documentation得到的是,document.ready在文档对象模型准备好后立即被触发。我无法理解的是,当我使用script.js
对$.get('script.js')
进行加载调用时,为什么它会再次触发document.ready
。这是plunkr和console.log
Document:READY
script.js:6 Script Loaded
VM562:4 Document:READY
VM562:6 Script Loaded
VM563:4 Document:READY
答案 0 :(得分:0)
$.get('script.js')
在script.js
内定义。这意味着它是递归的,因此,实际上你将$(document).ready(function()
称为递归无限。它永远不会停止呼唤。
答案 1 :(得分:0)
在深入研究documentation后,我发现只要动态加载js,jQuery就会触发此事件。来自api docs:
脚本可以在页面加载后很长时间内动态加载 $ .getScript()等方法。虽然处理程序由.ready()添加 将始终在动态加载的脚本中执行。