`
三角杀手王
  • 浏览: 10138 次
社区版块
存档分类
最新评论

tabPanel动态添加删除tab页的问题和解决办法

 
阅读更多
tabpanel上的tab是随着操作动态添加的,每次添加前都会删除原来的tab

js片段调用如下:

1 删除原来的tab
tabPanel.removeAll();

2 添加新的tab,每个tab都绑定了一个事件
tabPanel.add({
   id: tabItems[i].id,
   title: tabItems[i].title,
   url : tabItems[i].url,
   listeners: {activate: handleActivate}
});

问题是,当选中的tab页不是第一个的时候,每次动态添加新的tab页,
在调用tabPanel.removeAll();都会触发第一个tab页面的handleActivate事件,这个性能白白消耗。


解决方法:在每次删除tab页的时候去掉第一个tab页的绑定事件
var fistpanel = tabPanel.items.get(0);
if (fistpanel){
  fistpanel.removeListener("activate",handleActivate);
}

tabPanel.removeAll();


-----------------
问题是解决了,但是原因我还是不清楚,不知道哪位高手可以解释下的。







分享到:
评论
5 楼 asyura 2009-11-04  
为什么要删除呢,不停的删除,创建是最费资源的,而且js里删除的组件内存好像不会释放,那何不隐藏起来,下次用的时候直接显示呢?
4 楼 Sean220 2009-11-02  
当tab被remove的时候,会自动activate可用的一个(否则界面上不是一片空白),所以使用removeall触发事件,会调用到每一个的acivate事件
3 楼 三角杀手王 2009-11-02  
页面左边是功能树,点击的时候动态给tabpanel添加tab页,前一次的都要删除,而且tab页是多个的
2 楼 Rooock 2009-10-31  
三角杀手王 写道
tabpanel上的tab是随着操作动态添加的,每次添加前都会删除原来的tab



通过这句话, 我是否可以认为,你的tabpanel永远都只有一个tab.

假如每次都只会有一个tab. 那么要还增加tab.再删除原来的tab这步做什么呢.
直接刷新当前tab不就可以了吗?

1 楼 javaAlpha 2009-10-29  
去掉绑定的事件是一种技巧吧 我个人是这么认为的。

最近也在做ext的项目。

相关推荐

    WPF菜单栏,工具栏,TabControl动态添加、删除(支持左右滑动,选择),标题栏可修改背景色

    为了动态添加或删除Tab页,你可以使用`TabControl.Items`集合。例如,创建一个新的Tab项并添加到TabControl: ```csharp // 创建Tab项 TabItem tabItem = new TabItem { Header = "新Tab页" }; Grid contentGrid = ...

    ExtJS TabPanel 标签操作

    接下来,我们讨论如何动态添加和删除标签页。添加新的标签页可以通过`add()`方法实现,如下所示: ```javascript var newTab = { title: '新标签', html: '这是新添加的标签页内容' }; tabpanel.add(newTab).show...

    jquery bootstrap自定义添加删除选项卡代码

    在添加选项卡时,我们动态创建新的`<li>`和`<div>`元素,并使用Bootstrap的`tab()`方法激活新添加的选项卡。在删除选项卡时,我们找到当前活动的选项卡,移除对应的`<li>`和`<div>`元素,并重新激活第一个选项卡或...

    TabPanel选卡结合右键菜单实例

    5. **动画效果**:为了提升用户体验,可以添加一些动画效果,比如淡入淡出、滑动等,使TabPanel的切换和右键菜单的出现更加平滑自然。 6. **维护状态**:确保在用户导航时,TabPanel和右键菜单的状态得到正确更新。...

    flex checkboxtree 和可增加面板,可关闭的tab页

    4. **添加新Tab**:提供一个接口让用户添加新的`Tab`,这可能包括输入新Tab的标题或其他配置,然后在`TabNavigator`中动态创建和添加新`Tab`。 5. **保存和恢复状态**:为了提供更好的用户体验,可以考虑实现保存和...

    Extjs4 tab 基本选项卡及增删插入操作

    在这个“Extjs4 tab 基本选项卡及增删插入操作”的主题中,我们将深入探讨如何使用ExtJS 4来管理TabPanel的选项卡,包括创建、删除和插入操作。 首先,让我们了解TabPanel的基本配置和选项: 1. **创建TabPanel** ...

    javascript 经典tab控件

    模仿ExtJS的Tab控件意味着它可能包含类似的功能,如动态添加和删除标签页、支持Ajax加载内容、自定义样式等。 在实际开发中,创建一个JavaScript Tab控件通常涉及以下几个关键步骤: 1. **HTML结构**:首先,我们...

    ExtJS-3.4.0系列:Ext.TabPanel

    3. **动态添加和移除标签页**:可以使用`add`、`remove`和`removeAll`方法在运行时添加、删除或清空标签页。 4. **自定义标签样式**:可以使用CSS为标签页添加自定义样式,以满足设计需求。 5. **嵌套组件**:`...

    ext tab

    4. **动态添加和删除标签**:TabPanel支持在运行时动态添加或移除标签页,这对于构建可扩展的应用非常有用。 5. **自定义Tab样式**:EXTJS允许通过CSS样式对Tab进行定制,包括字体、颜色、背景等,以满足不同的设计...

    [html5技术]基于bootstrap制作的多标签页(tabs)

    Bootstrap的多标签页功能支持动态添加、删除和切换,可以轻松地与其他Bootstrap组件结合使用,如卡片、表格等。此外,还可以通过添加额外的类名,如`.justify-content-center`或`.justify-content-end`来调整Nav组件...

    ExtJs 后台通用界面布局,左侧树,Center Tab 选项

    - TabPanel支持动态添加、删除和切换Tab页,每个Tab页可以是一个独立的组件或者包含多个组件。 - TabPanel的配置项包括tabPosition(Tab的位置,如顶部、底部等)、activeTab(默认选中的Tab)等。 4. **事件处理...

    多种好用的tab

    例如,Bootstrap的Tab组件支持动态添加、删除标签页,以及平滑的动画过渡。 在移动应用开发中,Android和iOS平台都有内置的TabBar或TabViewController组件,用于创建底部导航栏。在Android中,我们可以使用`...

    asp.net TabControls 选项卡

    // 将TabPanel添加到TabControl tabControl.Tabs.Add(tabPage); } // 将TabControl添加到页面的ContentPlaceHolder PlaceHolder1.Controls.Add(tabControl); } } ``` 在这个例子中,我们首先检查是否是页面...

    Tab选项卡控件及Demo源码_aspx开发教程.rar

    在某些情况下,可能需要在运行时动态添加或删除TabPanel。这可以通过编程方式实现,例如使用C#或VB.NET代码。通过调用TabContainer的Controls集合的方法,可以添加新的TabPanel实例,并设置其属性如Text(标题)和...

    tabpannel组件

    - **Control API**:提供给开发者用于操作TabPanel的接口,如添加、删除Tab,以及改变当前选中Tab的方法。 ### 实现TabPanel组件的关键技术 1. **事件处理**:TabPanel的动态切换依赖于事件监听和触发。例如,当...

    Coolite控件

    2. **动画效果**:TabPanel可以配置切换动画,比如淡入淡出、滑动等,让应用更显动态和专业。 3. **数据绑定**:可以将TabPanel与数据源绑定,自动根据数据生成标签页,适用于大数据量或多对象展示的场景。 4. **...

    纯js tab选择卡---js

    - 为Tab组件添加`role`属性(如`role="tablist"`、`role="tab"`、`role="tabpanel"`),并设置`aria-selected`属性,使辅助技术(如屏幕阅读器)能正确理解Tab组件的工作方式。 以上就是用纯JavaScript实现Tab组件...

    ASP.NET-[其他类别]Tab选项卡控件及Demo源码.zip

    - AjaxControlToolkit的TabContainer:这个控件提供了丰富的功能,包括异步加载内容,动态添加和删除选项卡等。使用时需要引用AjaxControlToolkit的DLL,并在页面上注册控件。每个选项卡是一个TabPanel,可以通过...

    基于Vue.js实现tab滑块效果

    用户不仅可以添加、删除tab,还能实时编辑每个tab的内容,且所有操作都会自动反映在视图上,无需手动同步数据。 总结来说,这个例子展示了Vue.js如何与HTML、CSS和JavaScript协作,创建一个动态的、用户可交互的tab...

Global site tag (gtag.js) - Google Analytics