在Backbone/Marionette中重新渲染任何自定义jQuery事件的子视图是有办法的。当子视图中的自定义jQuery事件需要重新渲染时,可以通过以下步骤实现:
render
方法。render
方法中,首先解绑之前绑定的自定义jQuery事件,然后重新渲染子视图的内容。下面是一个示例代码:
var CustomView = Backbone.View.extend({
events: {
'click .custom-button': 'customEvent'
},
render: function() {
// 解绑自定义jQuery事件
this.undelegateEvents();
// 重新渲染子视图内容
this.$el.html('<button class="custom-button">Click me</button>');
// 重新绑定自定义jQuery事件
this.delegateEvents();
return this;
},
customEvent: function() {
// 处理自定义事件的逻辑
}
});
var ParentView = Backbone.View.extend({
render: function() {
// 创建子视图实例
var customView = new CustomView();
// 渲染子视图
this.$el.append(customView.render().el);
return this;
}
});
var parentView = new ParentView();
parentView.render();
在上述示例中,CustomView
是一个子视图,其中定义了一个自定义的jQuery事件customEvent
。在CustomView
的render
方法中,首先解绑之前绑定的自定义jQuery事件,然后重新渲染子视图的内容,并最后重新绑定自定义jQuery事件。在ParentView
中,创建了CustomView
的实例,并将其渲染到父视图中。
这样,当需要重新渲染子视图时,只需要调用子视图的render
方法即可重新渲染子视图的内容,并保持自定义jQuery事件的绑定。
领取专属 10元无门槛券
手把手带您无忧上云