`
yiminghe
  • 浏览: 1434162 次
  • 性别: 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 3.04包/中文版API/入门学习资料

    struts2+extjs3 单/多文件上传

    struts2+extjs3的单/多文件上传,后台也可以不用struts2,前台也可以去掉extjs,资源包含所需要的所有JAR包,无需另外下载,代码量绝对精简易懂。

    ExtJs + api + 笔记 + 完整包

    ExtJs + api + 笔记 + 完整包

    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

    Extjs3 多选下拉框LovCombo,Extjs3 多选下拉框LovCombo

    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 ...

    extjsapi/extjs3.4

    extjsapi,extjs文档,api手岫

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

    NULL 博文链接:https://lovebeyond.iteye.com/blog/1197784

    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; ...

    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;

    ManagedIframe

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

    extjs中文解决方案/Eclipse下的js和ext开发

    extjs中文解决方案/Eclipse下的js和ext开发 内容: 1. &lt;script type="text/javascript" src="&lt;%=contextPath%&gt;/public/js/ext-base.js"&gt;&lt;/script&gt; 2. &lt;script type="text/javascript" src="&lt;%=contextPath%&gt;/public...

    extjs 4.2.1 examples 官方例子

    http://docs.sencha.com/extjs/4.2.1/ 参考这个 ,与这个一样

    ExtJs事件处理 ajax

    对extjs时间的介绍,期待您的参与,我们一起努力

    EXTJS实用开发指南

    &lt;link rel="stylesheet" type="text/css" href="extjs/resources/css/ext-all.css" /&gt; &lt;script type="text/javascript" src="extjs/adapter/ext/ext-base.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="extjs/...

    ExtJS 事件处理 动态载入

    1.主要是Extjs方面的一些学习笔记。重点方面有事件处理,动态载入等相关介绍。

    extjs5官方demo

    http://【localhost:5012/web】/Extjs5Demo/build/examples/index.html 【】内,输入Extjs5Demo在服务器上的地址,即可看到官方文档

    ExtJS的MVC模式

    ExtJS4.0.7的MVC模式。 欢迎大家下载。

    让我们开始EXTJS之旅EXTJS_WEB开发指南

    开始ExtJS之旅的第一步是要获得开发包,可以从官方网站www.ExtJS.com下载,以保证获 得最新版本。其下载地址是http://www.ExtJS.com/download,下载成功后的开发包是ExtJS- 2.0.2.zip,有6.08MB大。不过不用担心,这...

Global site tag (gtag.js) - Google Analytics