1

我一直在用头撞墙一个小时,试图弄清楚为什么我的主干代码不起作用。我终于通过切换使其工作:

<!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. 有人可以向我解释为什么这会起作用吗?

4

1 回答 1

2

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

于 2013-02-01T09:56:58.440 回答