1

したがって、ここに addBook と showBooks の 2 つのビューがあります。アイデアは、ボタンをクリックすると、本の名前と著者を DOM に追加する必要があるということです。

  • 、そしてそれをクリックできるはずです。でも問題はそれぞれ
  • 要素に複数のイベント ハンドラが追加されています。つまり、新しい内側のビューごとに複数のクリック イベントが追加されます。

    var addBook = Backbone.View.extend({
            el : $('#addbook'),
            model : bookmodel,
            template : _.template(addbookTemplate,{}),
            initialize : function(val){
                this.el.html(this.template);
                bookcollection.bind('add', this.showOff)
            },
            render : function(){
            },
            events : {
                'click #addbookbutton' : 'addHandler'
            },
            addHandler : function(){                
                var book =  new this.model;
    book.addValues($('#bookname').val(), $('#bookauthor').val());
     bookcollection.add(book);
    
    
            },
            showOff : function(buk){
                this.xx = new showval({model: buk});
                $('#fatman').append((this.xx.render().el));
            }
        });
        return addBook;
    

    2番目の内側のビュー

    var showbooks = Backbone.View.extend({
            events : {
                'click .individual' : 'deleteHandler'
            },
            initialize : function(values){
                _.bindAll(this);
                /*if(values){*/
    
                    //return this.template;
                //}
                //values = (values == "") ? {} : values;
                this.el.append(this.template);
            },
            render : function(){
                this.el = _.template(show, {name : "Max", author : "jk"});
                this.delegateEvents();
                return this;    
            },
    
            deleteHandler : function(e){
                alert("this kills me")
            }
        });
        return showbooks;
    

    ボタンをクリックすると、ここに問題があります

  • DOM ボタンに追加されますが、新しい li ごとにもう 1 つのアラートが発生します ... 助けていただければ幸いです。いくつかの重要なポイントが欠けていることはわかっています。

  • 4

    1 に答える 1

    1

    私はあなたのコードを取り、それを少し変更しました。Backbone.View1 つはコンテナ用、もう 1 つはブック アイテム用の2 つを作成しました。大雑把ですが、うまくいけば、どこが間違っているのかがわかります。http://jsfiddle.net/cQEu2/

    于 2013-03-03T15:50:55.143 に答える