【问题标题】:backbone.js View event handlingBackbone.js 查看事件处理
【发布时间】:2012-05-11 14:11:38
【问题描述】:

我刚开始使用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>

但是这个 sn-p 似乎不起作用,单击 #rf 元素时不会调用 test() 方法。 我做错了什么,对此我很陌生。

【问题讨论】:

  • 需要更多上下文,你如何渲染你的视图,你的 html 是什么样的。

标签: javascript namespaces backbone.js


【解决方案1】:

您尚未实例化您的视图。试试这样的:

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

(而不是:App.Views.Sidebar;

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

$(function() {

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

});

【讨论】:

    猜你喜欢
    • 2012-04-16
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 2014-03-09
    相关资源
    最近更新 更多