骨干包含在头部?

时间:2013-02-01 09:53:34

标签: javascript backbone.js

我一直在靠墙撞墙一小时试图找出我的骨干代码无效的原因。我终于通过切换来实现它的工作:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>hello-backbonejs</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>

  <script src="js/application.js"></script>
</head>
<body>

</body>
</html>

要:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>hello-backbonejs</title>
</head>
<body>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js"></script>
  <script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>

  <script src="js/application.js"></script>
</body>
</html>

基本上移动脚本包括从headbody。有人可以向我解释为什么这会起作用吗?

1 个答案:

答案 0 :(得分:2)

如果您的application.js模块处理页面的元素,那么它就是预期的行为,因为当您的脚本位于body标记的末尾时,页面已经呈现,您可以使用其元素。 当您的脚本包含在head元素中时,页面仍然没有呈现,但脚本将执行并尝试处理仍然不存在的元素。 因此,您必须在body标记的末尾包含脚本,或者在window.onload$(document).ready事件处理程序中开始执行。