在本地运行此代码并从Dropbox公共网址http://dl.dropbox.com/u/6862628/backbone.html运行时,我收到错误“未定义不是函数”。
但是,当我在jsfiddle上运行它时,它按预期工作:http://jsfiddle.net/fdKKD/
简而言之,我正在创建一个简单的模型和一个简单的视图。当我在模型上设置属性时,视图console.log的“渲染”。
我在Chrome 17和Safari,Mac中看到了相同的行为。
这让我疯了。希望得到一些帮助。
答案 0 :(得分:3)
如果您打算进行任何DOM操作(例如,如果您使用视图),Backbone需要在 Backbone之前加载 jQuery或Zepto。您的HTML包含以下顺序的内容:
因此,Backbone在加载时不知道它是否应该使用jQuery或Zepto,并且最终会使用未定义的值来使用函数。你原来的jsfiddle在侧边栏中使用jQuery,所以jQuery将在你的<script>
标签被点击之前被jsfiddle 加载,所以Backbone看到jQuery,使用它,一切正常。如果切换到“No-Library(纯JS)”:
然后你会再次看到你的错误。如果你首先包含jQuery:
事情会奏效。