`
cugbmao09
  • 浏览: 35159 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Sencha-touch之TabPanel的Tab在点击时执行事件

阅读更多

前面一直很忙,忙了快有一年了,学习了很多东西,也没有系统的整理一下,现在开始逐渐的将自己的一些学习的心得一点一点的记录下来。

 

Sencha-touch的前身是ExtJs,前几年我一直在做ExtJs的方面的扩展开发,现在由于自己的项目,做移动端的跨平台开发,因此用到了Sencha-touch。

 

Sencha-touch中TabPanel的使用频率应该是很高的了,一般的应用应该都会用到,但是TabPanel的TabBar在点击时,就会切换到对应的容器界面去,而经常会有这种情况,在TabBar中其实只是需要4个容器,而在TabBar上需要一个按钮,让其被点击时执行某个方法,而并不是切换到某个界面下去,在1.1的版本中,是可以给TabBar添加item来实现的,不过那也是存在Bug的,而在2的版本中,这样是无法实现的,为了实现这个功能,需要修改一点源码。

 

在TabPanel的源码中修改doTabChange方法,原本的doTabChange方法的源码是:

 

 

doTabChange: function(tabBar, newTab, oldTab) {

        var index = tabBar.indexOf(newTab);

        this.setActiveItem(index);

}

 

 

在其中添加几行代码:修改成:

 

 

doTabChange: function(tabBar, newTab, oldTab) {

        var index = tabBar.indexOf(newTab);

        var item = this.getInnerItems()[index];

        if(item.handler){

if(typeof(item.handler)== 'string'){

                eval(item.handler); 

}else{

            item.handler(); 

}

        return;

}

        this.setActiveItem(index);

}

 

 

如此修改后,在创建TabPanel时,如果需要某个Tab点击执行事件,只需要给该Tab一个handler属性,如:

 

Ext.create('Ext.tab.Panel',{

tabBar: {

docked: 'bottom',

layout: {

type: 'hbox',

align: 'middle'

}

},

items: [{

title: '首页',

            iconCls: 'home'

},{

title: '好友',

iconCls: 'user',

handler: function(){

alert('==========');

}

},{

title: '信息',

iconCls: 'mail'

},{

iconCls: 'favorites',

title  : '战利品',

},{

iconCls: 'more',

title: '更多'

  }]

});

 

如此在点击好友这个Tab的时候会弹出=========的提示,而在点击其他Tab的时候就会进行页面切换。

0
0
分享到:
评论

相关推荐

    Sencha_touch_开发指南.doc

    ### Sencha Touch 开发指南知识点解析 #### 一、Sencha Touch 概述 - **定义**:Sencha Touch 是一款专为移动设备设计的 JavaScript 框架,旨在帮助开发者构建高性能、接近原生应用体验的 Web 应用。 - **特性**:...

    sencha touch 例子 Tabs 和 Toolbars 使用

    在Sencha Touch中,TabPanel是一种布局类型,它允许你在应用的不同页面之间进行切换,每个页面对应一个Tab。TabPanel通常用作应用的主要导航结构,每个Tab都代表一个独立的视图。创建TabPanel时,你需要定义一个包含...

    sencha touch app框架nav+tab和nav+menu

    同时,通过研究源代码,可以了解如何组织和管理应用的结构,以及如何使用Sencha Touch提供的API和事件处理机制。 总之,这个资源为Sencha Touch的使用者提供了一次实践和学习导航模式的良好机会,无论你是新手还是...

    sencha touch 模仿tabpanel导航栏TabBar的实例代码

    基于sencha touch 2.2所写 代码: 代码如下:/**模仿tabpanel导航栏*/Ext.define(‘ux.TabBar’, { alternateClassName: ‘tabBar’, extend: ‘Ext.Toolbar’, xtype: ‘tabBar’, config: { docked: ‘bottom...

    sencha_的所有xtype类型

    `xtype`是Sencha框架(如Ext JS和Sencha Touch)中用于组件类型的扩展名,它允许开发者通过一个简短的字符串来创建各种组件。这种机制极大地简化了代码,使得开发人员能够快速地构建复杂且功能丰富的用户界面。 ###...

    基于HTML5的点餐平台手机客户端设计 (2014年)

    这一框架包括丰富的组件库,如Tab面板、表单控件、列表视图等,它们可以直接在开发时引用。在index.html的标签中引用Sencha Touch的主框架,确保必要的样式和脚本文件被正确加载。例如,使用Ext.require()函数来引用...

Global site tag (gtag.js) - Google Analytics