0

我刚开始玩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() 方法。我做错了什么,对此我很陌生。

4

1 回答 1

4

您还没有实例化您的视图。尝试这样的事情:

var myView = new App.Views.Sidebar();

(而不是App.Views.Sidebar;:)

也不要忘记在文档加载后实例化您的视图。像这样的东西(如果你使用 JQuery):

$(function() {

  // Initialize Backbone views.
  var myView = new App.Views.Sidebar();

});
于 2012-05-11T14:36:07.000 回答