jQuery:使用$ .get('script.js')调用

时间:2017-02-01 18:11:33

标签: javascript jquery

我正在从它的官方文档中学习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。这是plunkrconsole.log

Document:READY
script.js:6 Script Loaded
VM562:4 Document:READY
VM562:6 Script Loaded
VM563:4 Document:READY

2 个答案:

答案 0 :(得分:0)

$.get('script.js')script.js内定义。这意味着它是递归的,因此,实际上你将$(document).ready(function()称为递归无限。它永远不会停止呼唤。

答案 1 :(得分:0)

在深入研究documentation后,我发现只要动态加载js,jQuery就会触发此事件。来自api docs:

  

脚本可以在页面加载后很长时间内动态加载   $ .getScript()等方法。虽然处理程序由.ready()添加   将始终在动态加载的脚本中执行。