-1

これは絶対に私を夢中にさせます!このコードが機能しない理由と修正方法を誰か説明してもらえますか? 「クリック」というメッセージをコンソールに送信する必要がありますが、機能していません。コンソール メッセージはどこでも機能しますが、何らかの理由で JavaScript がクリック イベントをキャプチャしていません。

var resultsListView = new ResultsListView({model: comparablesList});

ResultsListView = Backbone.View.extend({
        tagName:'div',
        id:'resultView',
        template:_.template("<div class='resultsListItemView'></div>"),

        initialize:function () {
            $( this.el ).html('<p class="loadingText">Getting comparables...<p>');
            this.model.bind("change", this.render, this);
            this.model.bind("reset", this.loading, this);
        },

        render:function (eventName) {
            $( this.el ).html( this.template() );

            _.each(this.model.models, function (comparable) {
                this.$('.resultsListItemView').append(new ResultsListItemView({model:comparable}).el);
            }, this);

            $('#info').html($(this.el));

            return this;
        }
    });

    ResultsListItemView = Backbone.View.extend({
            initialize: function(){
                this.render();
            },

            template:_.template("<div class='hovr_item'> \
                                    <div class='hovr'> \
                                        <button class='test123'>test</button> \
                                    </div> \
                                </div> "),

            render: function(){
                var resultsListItemView = this;
                $(this.el).html(this.template(this.model.toJSON()));

                $(this.el).find('.test123').click(function() {
                    console.log('click'); // this does not work after clicking
                });
                return this;
            }
        });

追加の手がかりとして、このコードをレンダリングすると、コンソールに表示されます...したがって、クリックイベントのみのように見えます:

$(this.el).find('.test123').each(function(index) {
        console.log('found');
    });
4

1 に答える 1

1

このイベントを events 属性にバインドしようとしましたか? すなわち:

events: "click .test123": "affiliateClick"
于 2012-10-02T23:50:43.857 に答える