gpt4 book ai didi

javascript - 主干刷新 View 事件

转载 作者:可可西里 更新时间:2023-11-01 02:32:57 28 4
gpt4 key购买 nike

在我看来,我没有声明 this.el,因为我是动态创建它的,但这样事件就不会触发。

这是代码:

View 1:

App.Views_1 = Backbone.View.extend({

el: '#content',

initialize: function() {
_.bindAll(this, 'render', 'renderSingle');
},

render: function() {
this.model.each(this.renderSingle);
},

renderSingle: function(model) {

this.tmpView = new App.Views_2({model: model});
$(this.el).append( this.tmpView.render().el );

}
});

View 2:

App.Views_2 = Backbone.View.extend({

initialize: function() {
_.bindAll(this, 'render');
},

render: function() {
this.el = $('#template').tmpl(this.model.attributes); // jQuery template
return this;
},

events: {
'click .button' : 'test'
},

test: function() {
alert('Fire');
}

});

});

当我点击“.button”时没有任何反应。谢谢;

最佳答案

在 render() 方法的末尾,您可以使用 delegateEvents() 告诉主干重新绑定(bind)事件.如果您不传递任何参数,它将使用您的事件哈希。

render:         function() {    
this.el = $('#template').tmpl(this.model.attributes); // jQuery template
this.delegateEvents();
return this;
}

关于javascript - 主干刷新 View 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260696/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com