`
laitaogood
  • 浏览: 107780 次
  • 性别: 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继承重写

    在实际开发中,`ext_extends`可能会包含多个示例,展示了不同类型的继承和重写场景,比如控件的定制、事件处理、数据绑定等。这些实例可以帮助开发者深入理解EXT JS的继承机制,并熟练运用到实际项目中,提高代码的...

    Ext.js 重写 numberfield

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

    EXT dojochina Ext方法重写.rar

    EXT dojochina Ext方法重写是一个关于EXT.js框架中函数重写的专题。EXT.js是一个流行的JavaScript库,用于构建富客户端应用,它提供了丰富的组件、布局管理和数据绑定机制。在EXT.js中,方法重写是一种常见的实践,...

    Extjs 重写Panel添加click事件

    在这个场景中,我们将深入探讨如何在Ext JS中重写Panel并为其添加click事件。 首先,理解Panel的基本结构是至关重要的。一个Panel由多个部分组成,包括头部(header)、主体(body)和脚部(footer)。我们可以通过...

    Ext一些方法的重写

    在这个主题"Ext一些方法的重写"中,我们将深入探讨如何在`Ext`库中重写方法,以满足特定的需求或优化性能。 `Ext.extend()` 是`Ext`库中的一个核心函数,它用于创建类的继承链。在JavaScript这种没有类的语言中,`...

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

    `Ext.ux.form.ColorPickerFieldPlus` 是一个由老外开发者重写的色彩选择器组件,它扩展了原生的Ext JS库中的`ColorPickerField`控件,为用户提供更加丰富的色彩选取体验。这个组件的目的是为了实现更自由、更接近...

    Ext2.2 中文手册

    - **获取 DOM 节点**:通过 `Ext.get` 或 `Ext.select` 方法可以轻松获取页面中的 DOM 元素。 - **响应事件**:使用 `addListener` 方法为元素绑定事件处理器,例如点击事件。 - **使用 Widgets**:Ext 提供了多种...

    ext4 表格分页实例代码

    在IT行业中,EXT4是一种广泛使用的文件系统,尤其在Linux操作系统中。它的全称是Fourth Extended File System,是EXT3的升级版,旨在提供更好的性能、稳定性和更大的存储容量。EXT4引入了许多新特性,例如预分配、...

    Ext中文排序问题

    在ExtJS中,可以通过重写`Ext.data.Store.prototype.applySort`方法来实现中文排序。具体步骤如下: 1. **检查排序信息**:首先判断当前Store是否设置了排序信息,并且不是远程排序。 2. **获取字段信息**:从排序...

    ext js中文开发手册

    EXT JS采用了面向对象的编程模式,支持类的继承和重写。这允许开发者在不修改原始代码的情况下,扩展和定制现有组件的功能。 **十八、补充资料与概述** 除了上述内容,EXT JS还提供了丰富的文档和社区资源,包括...

    Ext TreePanel Checked Ext复选框树

    在IT领域,特别是前端开发中,`Ext JS`是一个广泛使用的JavaScript库,它提供了一整套组件和工具,用于构建富交互式的Web应用程序。`TreePanel`是`Ext JS`中的一个关键组件,用于展示层次结构的数据,就像操作系统中...

    解决Ext Grid中文排序问题

    为了解决这个问题,我们可以重写Ext.data.Store的`applySort`函数,以便在进行本地排序时应用中文排序规则。上述代码正是这样一个解决方案。它将原生的`applySort`函数替换为一个新的版本,其中包含了对中文字符串...

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

    4. **事件处理**:监听用户选择年份的事件,当用户选择新的年份时,触发相应的回调函数,以便在应用中处理年份改变。 5. **样式调整**:为了提供良好的用户体验,可能需要调整控件的样式,使其更符合年度选择的场景...

    Ext实现java的面向对象实例

    10. **事件队列**:在Ext中,事件队列是一种处理异步操作的方式,它确保了事件按照一定的顺序进行处理。事件监听者注册后,当触发事件时,事件会被加入到队列并按顺序执行。 了解并掌握这些Ext的面向对象特性,有助...

    EXT支持GRID中文排序

    为了解决上述问题,可以通过重写`Ext.data.Store`原型中的`applySort`方法来实现对中文数据的正确排序。具体实现如下: ```javascript Ext.data.Store.prototype.applySort = function() { if (this.sortInfo && !...

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

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

    ext超酷的grid中放图片(ext3.2.1)

    在EXT JS 3.2.1版本中,Grid组件是一个非常强大的数据展示工具,它可以用于显示大量的结构化数据,并提供丰富的交互功能。标题"ext超酷的grid中放图片(ext3.2.1)"暗示了我们将探讨如何在EXT JS的Grid组件中嵌入和...

    asp.net ext 中文手册

    文档中介绍了如何在EXT中使用继承,包括定义基类、派生类,以及如何重写父类的方法和属性。 #### 11. 模板(Templates)起步 模板是用于生成动态HTML的有效工具,它允许开发者在HTML标记中嵌入变量和逻辑表达式。在...

    EXT 中文帮助手册

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

Global site tag (gtag.js) - Google Analytics