我刚刚开始使用backbone.js并且正在享受使用它的怪癖。 但是我正在尝试使用它来处理正在处理的网站的视图中的事件。 我也使用命名空间来组织我的代码
var App = App || {};
App.Views = App.Views || {};
App.Views.Sidebar = Backbone.View.extend({
el: '#app-wrapper',
events : {
"click #rf":"test"
; },
test: function(e) {
alert("testing");
}
})
}
});
这是html,它只是网站的骨架
<html>
<head>
<title>Shopping List</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="underscore.js"></script>
<script type="text/javascript" src="backbone.js"></script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript">
App.Views.Sidebar;
</script>
</head>
<body>
<div id="app-wrapper">
<div id="app-header">
<ul>
<li id="rf">Test</li>
</ul>
</div>
</div>
</body>
</html>
但是,此代码段似乎不起作用,单击#rf元素时不会调用test()方法。 我做错了什么,对此我很陌生。
答案 0 :(得分:4)
您尚未实例化您的观点。尝试这样的事情:
var myView = new App.Views.Sidebar();
(而不是:App.Views.Sidebar;
)
一旦加载文档,也不要忘记实例化您的视图。像这样的东西(如果你使用JQuery):
$(function() {
// Initialize Backbone views.
var myView = new App.Views.Sidebar();
});