`
yiminghe
  • 浏览: 1471116 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Extjs 事件的 observer / listener 模式

阅读更多

observer / listener 模式

button 实现 observer 的接口,里面一个 event 数组,一个事件的 function 加入时,function 加入到这个事件的 listener 数组,button 发生事件时,通知事件 function 数组的所有成员,执行。
若事件正在发生的同时又对这个事件加入(或删除)了一个listener,( this.firing = true ),则 this.listeners = this.listeners.slice(0) copy 一个新的数组,然后操作 this.listeners,不干扰当前的 loop

button -> component -> observer

reference :


slice:

  var a;  
  a = new Array("a","b","c","d","e");  
   document.write(a.slice(0,3) + "<br>");  
   document.write(a.slice(-3,4) + "<br>");  
    document.write(a.slice(0,-1) + "<br>");  
    document.write(a.slice(1) + "<br>");  
  document.write(a.slice(4,3));  

var a;
a = new Array("a","b","c","d","e");
document.write(a.slice(0,3) + "<br>");
document.write(a.slice(-3,4) + "<br>");
document.write(a.slice(0,-1) + "<br>");
document.write(a.slice(1) + "<br>");
document.write(a.slice(4,3));


这个示例用到了数组(Array)对象的Slice(start,[end])方法,该方法返回一个新数组,包含了源函数从start到 end 所指定的元素,但是不包括end元素,比如a.slice(0,3);如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度,比如a.slice(-3,4),相当于a.slice(2,4)。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度,比如a.slice(0,-1)。如果省略 end ,那么 slice 方法将一直复制到源数组结尾,比如a.slice(1)。如果 end 出现在 start 之前,不复制任何元素到新数组中,比如a.slice(4,3)。

splice:
splice():在数组的任意位置进行添加,删除或者替换元素,直接修改数组对象

细节:
splice()有三个参数或三个以上参数,前两个是必须的,后面参数是可选的
进行添加:splice(起始项,0,添加项)
进行删除:splice(起始项,要删除的项个数)
进行替换:splice(起始项,替换个数,替换项) 这个其实是添加删除的共同结果


代码:

 

var m=["am","bm"]
m.splice(1,0,"fm","sm");//在第一项后面添加fm和sm,返回am,fm,sm,bm
alert(m);
m.splice(2,1);//删除第二项后面一项(即第三项sm,返回am,fm,bm)
alert(m);
m.splice(2,1,"mm");//替换第二项后面一项(即第三项,返回am,fm,mm)
alert(m); 

 

 

分享到:
评论

相关推荐

    EXTJS 3.04包/中文版API/入门学习资料

    EXTJS基于事件驱动,组件间的交互主要通过事件触发和监听来实现。开发者可以自定义事件,也可以利用内置的点击、改变、加载等事件来响应用户操作。 五、EXTJS 3.04 API 中文版API文档对于EXTJS的学习至关重要,它...

    Extjs源码之--Ext事件机制/继承关系

    首先,EXTJS的事件机制基于观察者模式,即事件发布者(Publisher)发出事件,而事件订阅者(Subscriber)监听并响应这些事件。EventManager.js就是实现这一模式的关键,它提供了注册、触发和解绑事件的接口。 1. **...

    struts2+extjs3 单/多文件上传

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,而ExtJS3则是一个用于构建富客户端JavaScript应用的库。本文将深入探讨如何使用Struts2和ExtJS3实现单文件和多文件的上传功能。 首先,我们...

    ExtJs + api + 笔记 + 完整包

    理解这些布局模式可以帮助你构建出更灵活、适应不同屏幕尺寸的应用。 "23-Ext中的对话框.doc"文件讲解了对话框(Dialog)组件的使用,包括模态窗口和非模态窗口。对话框在Web应用中常用于弹出确认、提示或设置信息...

    Extjs-ext-3.1.1

    licensing@extjs.com http://extjs.com/license Open Source License Ext is licensed under the terms of the Open Source GPL 3.0 license. http://www.gnu.org/licenses/gpl.html There are several FLOSS ...

    Extjs3 多选下拉框LovCombo

    ExtJS 3是一款基于JavaScript的富客户端框架,用于构建功能丰富的、交互式的Web应用程序。在ExtJS 3中,多选下拉框(LovCombo)是一种复合组件,它结合了下拉列表和“爱好者选择”(LOV,Lookup Value)的功能,允许...

    extjsapi/extjs3.4

    extjsapi,extjs文档,api手岫

    ext-2.2.zip

    体验例子见:http://extjs.com/deploy/dev/examples/form/file-upload.html 2、GMapPanel GMap扩展 体验例子见:http://extjs.com/deploy/dev/examples/window/gmap.html 3、XmlTreeLoader XML转换成Tree ...

    ExtJS入门教程

    1、开始使用extjs 2、组件的介绍以及应用 3、ExtJS的核心 该教程有相应的代码以供参考 &lt;!--导入Ext3.2--&gt; &lt;link rel="stylesheet" type="text/css" href="extjs3.2/resources/css/ext-all.css" /&gt; ...

    ExtJS 2.3/3.0 定制你所需要的模块

    这可能涉及到扩展ExtJS的现有类,例如`Ext.tree.TreePanel`,并添加新的行为、样式或事件处理器。 3. **工具集(Toolkits)**:ExtJS 3.0引入了工具集的概念,比如经典的Classic Toolkit和更加现代的Modern Toolkit...

    ExtJs事件处理 ajax

    在ExtJs中,事件处理是构建交互式用户界面的关键组成部分。下面将详细解释标题和描述中提到的ExtJs事件处理,以及与Ajax交互的相关知识。 1. **基本事件处理** - 在ExtJs中,可以使用`on`方法来监听DOM元素或Ext...

    Extjs3.2可视化编辑器

    ExtJS是一个很不错的Ajax框架,可以用来开发带有华丽外观的富客户端应用,使得...要使用ExtJS,那么首先要得到ExtJS库文件,该框架是一个开源的,可以直接从官方网站下载,网址:http://extjs.com/products/extjs/download.php

    Extjs4.2.1核心包

    Extjs4.2.1核心包,做学习测试用,拷贝这些文件就行了,如果拷贝完整的包,...&lt;link rel="stylesheet" href="extjs/resources/css/ext-all.css" type="text/css" /&gt; &lt;script src="extjs/ext-all-debug.js"&gt;&lt;/script&gt;

    EXTJS事件实例源码

    1. **事件监听与触发**:EXTJS中的每个组件都拥有自己的事件系统,可以通过`addListener`(或简写`on`)方法来监听事件,`fireEvent`方法来触发事件。例如: ```javascript var button = Ext.create('Ext.button....

    ExtJS 事件处理 动态载入

    在深入探讨事件处理和动态载入这两个主题之前,我们先简单了解一下ExtJS的基础。 ExtJS 提供了一个完整的框架,包括丰富的UI组件、数据绑定机制、布局管理以及强大的事件模型。这使得开发者能够创建功能丰富的Web...

    ManagedIframe

    对ExtJS的TabPanel加载带js的iframe页提供支持 extjs load once提供支持 extjs 面板间消息传递提供支持。。 &lt;br&gt;资源整理自extjs论坛,修正了里面的链接和异常,直接部署到extjs2.1的example底下就可以 ...

    Extjs下/HTML下的文件下载(另存为的弹出)

    在Extjs中实现文件下载,通常会涉及到事件监听、Ajax请求以及浏览器的Blob对象和URL.createObjectURL方法。 1. **事件监听**:在Extjs中,我们可以在按钮或其他控件上设置监听器,当用户点击时触发相应的下载操作。...

    extjs6.2 SDK下载

    7. **API文档**:EXTJS 6.2的API文档会详尽地列出所有可用的类、方法、属性和事件,帮助开发者快速理解和使用框架。 8. **主题与皮肤**:EXTJS支持自定义主题,6.2可能会提供新的预设主题或改进现有主题的定制选项...

    ExtJS的MVC模式

    ExtJS的MVC模式是其框架的核心特性之一,主要用于组织和管理复杂的用户界面代码,确保应用的可维护性和可扩展性。在深入讲解MVC模式之前,先了解一下ExtJS本身。ExtJS是一款基于JavaScript的开源UI库,它提供了一套...

Global site tag (gtag.js) - Google Analytics