`
laitaogood
  • 浏览: 106282 次
  • 性别: Icon_minigender_1
  • 来自: 豫章郡→紫禁城
社区版块
存档分类
最新评论

Ext中事件重写

阅读更多
        如何实现ext事件的重写呢?
        很自然的,我们肯定是想到要去这样做:先继承一个已有的类,然后在extend的时候,重写我们需要的方法。这样做很好,很有OOP的风格。(请参考http://itren.iteye.com/admin/blogs/255563)但这样做似乎略有繁琐。有没有更好的方式呢?of course!
        我们可以用到prototype方式来完成,同时不必再继承一个类了。譬如说,我们有一棵树,我们为叶子节点绑定了双击事件,但我们想要重写该树叶子节点的双击方法则需要添加一些代码了。
        首先,这里有一棵普通的绑定了双击事件的树。
 Ext.onReady(function(){  
     var Tree = Ext.tree;  
       
     var tree = new Tree.TreePanel({  
         el:'tree-div',  
         useArrows:true,  
         autoScroll:true,  
         animate:true,  
         enableDD:true,  
         containerScroll: true,   
         loader: new Tree.TreeLoader({  
             dataUrl: 'get-nodes.php'  
         })  
     });  
   
     // 设置根节点  
     var root = new Tree.AsyncTreeNode({  
         text: 'Ext JS',  
         draggable:false,  
         id:'source'  
     });  
     /** 
         绑定该事件,双击树节点时弹出“哈哈” 
     */  
     root.on("dblclick", function(){  
         alert("哈哈")  
     })  
   
     tree.setRootNode(root);  
   
     tree.render();  
     root.expand();  
 }); 

        在这棵树中,我们双击叶子节点,会弹出“哈哈”的警告框。如果要修改该双击事件的方法。则应该如下:
  Ext.tree.TreeNodeUI.prototype.onDblClick = function(e){  
     /** 
         重写该方法,每双击一个节点树时弹出一个消息框 
     */  
     alert('Ext.tree.TreeNodeUI.prototype.onDblClick');  
       
     e.preventDefault();  
     if(this.disabled){  
         return;  
     }  
     if(this.checkbox){  
         this.toggleCheck();  
     }  
     if(!this.animating && this.node.hasChildNodes()){  
         this.node.toggle();  
     }  
     this.fireEvent("dblclick", this.node, e);  
  }  
   
 Ext.onReady(function(){  
     var Tree = Ext.tree;  
       
     var tree = new Tree.TreePanel({  
         el:'tree-div',  
         useArrows:true,  
         autoScroll:true,  
         animate:true,  
         enableDD:true,  
         containerScroll: true,   
         loader: new Tree.TreeLoader({  
             dataUrl: 'get-nodes.php'  
         })  
     });  
   
     // 设置根节点
     var root = new Tree.AsyncTreeNode({  
         text: 'Ext JS',  
         draggable:false,  
         id:'source'  
     });  
     /** 
         绑定该事件,双击树节点时弹出“哈哈” 
     */  
     root.on("dblclick", function(){  
         alert("哈哈")  
     })  
   
     tree.setRootNode(root);  
   
     tree.render();  
     root.expand();  
 });

        其中Ext.tree.TreeNodeUI 代表树中的一个节点,其实例负责和用户交互,我们重写它的onDblClick方法即完成了事件的重写。
分享到:
评论
1 楼 Allan0815 2012-10-25  
        
引用

    [*]
[img][/img]

相关推荐

    Ext.js 重写 numberfield

    Ext.js 重写 numberfield 千分位,我的版本是ext.net2.4

    EXT dojochina Ext方法重写.rar

    EXT dojochina Ext方法重写.rar EXT dojochina Ext方法重写.rar

    ext继承重写

    ext继承重写,达到了很高的水平。使用了很多方式,等等。

    Extjs 重写Panel添加click事件

    Extjs 重写Panel添加click事件

    Ext.ux.form.ColorPickerFieldPlus 老外重写调色版

    这个文件是重写ext的ColorPickerFieldPlus控件,实现自定义调色,和ps取颜色一样,比Ext自带的颜色多很多,是自己可以调的

    Ext一些方法的重写

    NULL 博文链接:https://20444465.iteye.com/blog/1058039

    extjs扩展年度控件,EXTJS里的时间控件的年度重写

    extjs扩展年度控件,EXTJS里的时间控件的年度重写

    EXT支持GRID中文排序

    EXT支持GRID中文排序 主要是重写排序的方法

    Ext 学习中文手册

    EXT中的继承 71 补充资料 73 Ext 2 概述 73 组件模型 Component Model 74 容器模型Container Model 78 布局 Layouts 80 Grid 82 XTemplate 83 DataView 84 其它新组件 84 EXT2简介 85 下载Ext 85 开始! 85 ...

    Ext继承--Ext自定义组件的书写方式

    目的:该示例非常详细注释说明Ext的面向对象的编程方式,使用继承,然后重写父类的方法,以及注册自定义事件说明Ext框架是事件驱动的框架编程。 阅读对象:本中心学习Ext面向对象编程的人员 阅读条件:掌握OO的思路...

    EXT 中文帮助手册

    19 重写公共变量 21 重写(Overriding)公共函数 21 DomQuery基础 22 DomQuery基础 22 扩展EXT组件 29 文件的创建 30 Let's go 33 完成 35 EXT的布局(Layout) 37 简单的例子 38...

    ext4 表格分页实例代码

    基于eclipse项目的ext4表格分页实例,基础而实用

    解决Ext Grid中文排序问题

    Grid实现中文排序的功能,重写Ext.data.Store的applySort函数

    EXT简体中文参考手册(PDF&CHM电子档)

    EXT中的继承 71 补充资料 73 Ext 2 概述 73 组件模型 Component Model 74 容器模型Container Model 78 布局 Layouts 80 Grid 82 XTemplate 83 DataView 84 其它新组件 84 EXT2简介 85 下载Ext 85 开始! 85 Element...

    EXT 中文手册

    19 重写公共变量 21 重写(Overriding)公共函数 21 DomQuery基础 22 DomQuery基础 22 扩展EXT组件 29 文件的创建 30 Let's go 33 完成 35 EXT的布局(Layout) 37 简单的例子 38...

    Ext+JS高级程序设计.rar

    8.3.2 在CRUD操作中restful的设置以及使用Ext.Direct的问题 247 8.4 ListView控件 248 8.5 本章小结 251 第四部分 Ext 扩展和Ext插件 第9章 Ext 扩展 254 9.1 利用Ext.extend实现继承 254 9.2 与Ext扩展相关的预备...

    ext Gird 有滚动条功能

    ext Gird 有滚动条功能 附带滚动条 重写原本EXT

    Ext实现java的面向对象实例

    Ext的面向对象实例: 1.命名空间 2.类实例属性 3.类实例方法 4.类静态方法 5.构造方法 6.类继承 7.类实例方法重写 8.命名空间别名 9.类别名 10.事件队列

    为EXT写的月份选择控件

    - - - Ext中控件非常丰富,有各种格式的日期选择DateField,但是要选择月份,非常麻烦.往往是需要修改源码的方法,如: 修改Ext....干脆,就重写了一个月份选择控件.使用接口和DateField类似,可以看下面附件中的代码.

    Ext日期控件显示农历,及其周末高亮显示

    扩展Ext日期控件,使其显示农历、让星期六、星期天高亮显示。 先有两种实现方式,一为重写Date.DatePicker和Ext.form....本JS文件在Ext3.1测试通过、若果要在高版本中使用,可参照例子重写相应源码的方法即可。

Global site tag (gtag.js) - Google Analytics