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 に答える