javascript – 显示,隐藏,然后重新显示Layouts打破事件

无法显示,隐藏,然后重新显示木偶布局.我相信这个问题也适用于常规的Backbone Views和Marionette ItemViews.

总之,我有一个父视图.初始化时,它会创建两个子布局,用作选项卡内容.问题是,当显示来自一个选项卡的选项卡内容时,将显示来自另一个选项卡的内容,当再次显示原始选项卡内容时,事件将不再起作用.

子布局在父布局的初始化函数中创建并重新使用,因为当导航移回它们时需要保留它们的状态.

这是一个sample application,演示了我在说什么:

这是一段显示破碎事件的视频:Video Link

非常感谢!

解决方法

问题是您没有创建子布局的新等级,只需重新使用您在主布局中启动的那个.因此,当您更改区域内容时,事件将被取消绑定,作为Marionette View的close()函数的一部分.

你应该改变你的初始化函数

initialize: function(){
    _.bindAll(this);
    // CREATE SUB LAYOUTS
   this.tab1Layout = B.tab1Layout;
   this.tab2Layout = B.tab2Layout;
},

并以这种方式调用布局:

// EVENT HANDLERS
on_show_tab_1_click: function(event){
    this.content.show(new this.tab1Layout());
},on_show_tab_2_click: function(event){
    this.content.show(new this.tab2Layout());
}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...