无论你是Ext库的新手,抑或是想了解Ext的人,本篇文章的内容都适合你。本文将简单地介绍Ext的几个基本概念,和如何快速地做出一个动态的页面并运行起来,假设读者已具备了一些JavaScript经验和初级了解HTML Dom。否则的话,请从阅读初学JavaScript资源开始。

下载Ext

如果你未曾下载过,那应从这里下载最新版本的Ext http://extjs.com/downloads。

针对你的下载需求,有几个不同的弹性选项。通常地,最稳定的版本,是较多人的选择。下载解包后,那个example文件夹便是一个探索Ext的好地方!

开始!

我们将使用Ext,来完成一些JavaScript任务。

第一步要做的是,下载本教程的示例文件。Zip文件包括三个文件:ExtStart.html, ExtStart.jsExtStart.css。解包这三个文件到Ext的安装目录中(例如,Ext是在“C:/code/Ext/v1.0”中,那应该在"v1.0"里面新建目录“tutorial”。双击ExtStart.htm,接着你的浏览器打开启动页面,应该会有一条消息告诉你配置已完毕。如果是一个Javascript错误,请按照页面上的指引操作。

在你常用的IDE中或文本编辑器中,打开ExtStart.js看看:

Ext.onReady可能是你接触的第一个方法。这个方法是指当前DOM加载完毕后,保证页面内的所有元素能被Script引用(reference)。你可删除alert()那行,加入一些实际用途的代码试试:

Ext.onReady( function ()  ... {
 alert("Congratulations!    You have Ext configured correctly!");
} );

Element:Ext的核心

大多数的JavaScript操作都需要获取页面上的某个元素(reference),好让你来做有趣的事情。传统的JavaScript方法,是通过ID获取Dom节点的:

var  myDiv  =  document.getElementById( ' myDiv ' );

这毫无问题,不过这样单单返回一个对象(DOM节点),用起来并不是太强大和好用。为了要用那节点干点事情,你将会要写不少自定义的代码;另外,对于不同类型浏览器之间的差异,要你处理起来可真头大了。

进入Ext.element对象。元素(element)的的确确是Ext的心脏地带,--无论是访问元素(elements)还是完成一些动作,都要涉及它。Element的API是整个Ext库的基础,如果你时间不多,只想了解Ext中的一个类的话,Element一定是首选!

由ID获取一个Ext Element如下(首页ExtStart.htm包含一个div,ID名字为“myDiv”,然后,在ExtStart.js中加入下列语句):

Ext.onReady( function () { var  myDiv  =  Ext.get( ' myDiv ' );});

再回头看看Element对象,发现什么有趣的东东呢?

  • Element包含了常见的DOM方法和属性,提供一个快捷的、统一的、跨浏览器的接口(若使用Element.dom的话,就可以直接访问底层DOM的节点。);
  • Element.get()方法内置缓存处理(Cache),多次访问同一对象效率上有极大优势;
  • 内置常用的DOM节点的动作,并且是跨浏览器的定位的位置、大小、动画、拖放等等(add/remove CSS classes, add/remove event handlers, positioning, sizing, animation, drag/drop)。

这意味着你可用最小的代码来做各种各样的事情,这里仅仅是一个简单的例子(完整的列表在ElementAPI中)。

继续在ExtStart.js中,在刚才我们获取好myDiv的位置中加入:

myDiv.highlight();         // 黄色高亮显示然后渐退
myDiv.addClass( ' red ' );     //  添加自定义CSS类 (在ExtStart.css定义)
myDiv.center();            // 在视图中将元素居中
myDiv.setOpacity(. 25 );     //  使元素半透明

获取多个DOM的节点

通常情况下,不能由ID获取多个DOM的节点,有可能因为没设置ID,或者你不知道ID,又或者直接用ID方式引用有太多元素了。这种情况下,你会不用ID来作为获取元素的依据,可能会用属性(attribute)或CSS Classname代替。基于以上的原因,Ext引入了一个功能异常强大的Dom Selector库,叫做DomQuery。

DomQuery可作为单独的库使用,但常用于Ext,你可以在上下文环境中(Context)获取多个元素,然后通过Element接口调用。幸运的是,Element对象本身便有Element.selcect的方法来实现查询,即内部调用DomQuery选取元素。这个简单的例子中,ExtStart.htm包含若干段落(

标签),没有一个是有ID的,而你想轻松地通过一次操作马上获取每一段,全体执行它们的动作,可以这样做:

//  每段高亮显示
Ext.select( ' p ' ).highlight();

DomQuery的选取参数是一段较长的数组,其中包括W3C CSS3 Dom选取器、基本XPath、HTML属性和更多,请参阅DomQuery API文档以了解这功能强大的库的细节。

响应事件

到这范例为止,我们所写的代码都是放在onReady中,即当页面加载后总会立即执行,功能较单一——这样的话,你便知道,如何响应某个动作或事件来执行你希望做的事情,做法是,先分配一个function,再定义一个event handler事件处理器来响应。我们由这个简单的范例开始,打开ExtStart.htm,编辑下列的代码:

Ext.onReady( function () {
 Ext.get( ' myButton ' ).on( ' click ' ,  function (){
   alert( " You clicked the button " );
 });
});

加载好页面,代码依然会执行,不过区别是,包含alert()的function是已定义好的,但它不会立即地被执行,是分配到按钮的单击事件中。用浅显的文字解释,就是:获取ID为'myDottom'元素的引用,监听任何发生元素被单击的情况,并分配一个function,以准备任何单击元素的情况。

正路来说,Element.select也能做同样的事情,即作用在获取一组元素上。下一例中,演示了页面中的某一段落被单击后,便有弹出窗口:

Ext.onReady( function () {
 Ext.select( ' p ' ).on( ' click ' ,  function () {
   alert( " You clicked a paragraph " );
 });
});

这两个例子中,事件处理的function均是简单几句,没有函数的名称,这种类型函数称为“匿名函数(anonymous function)”,即是没有名的的函数。你也可以分配一个有名字的event handler,这对于代码的重用或多个事件很有用。下一例等效于上一例:

Ext.onReady( function () {
  var  paragraphClicked  =   function () {
   alert( " You clicked a paragraph " );
 }
 Ext.select( ' p ' ).on( ' click ' , paragraphClicked);
});

到目前为止,我们已经知道如何执行某个动作。但当事件触发时,我们如何得知这个event handler执行时是作用在哪一个特定的元素上呢?要明确这一点非常简单,Element.on方法传入到even handler的function中(我们这里先讨论第一个参数,不过你应该浏览API文档以了解even handler更多的细节)。在我们之前的例子中,function是忽略这些参数的,到这里可有少许的改变,——我们在功能上提供了更深层次的控制。必须先说明的是,这实际上是Ext的事件对象(event object),一个跨浏览器和拥有更多控制的事件。例如,可以用下列的语句,恢复这个事件的指定的DOM节点:

Ext.onReady( function () {
  var  paragraphClicked  =   function (e) {
   Ext.get(e.target).highlight();
 }
 Ext.select( ' p ' ).on( ' click ' , paragraphClicked);
});

注意指定的是DOM节点,所以我们首先将其恢复成为适当的元素,然后执行欲完成的事件,这个例子中,我们看见段落是高亮显示的。

学习Ext第一天(Ext 简介)相关推荐

  1. 2007-11-7学习EXT第一天:EXT简介

    原文出处 翻译:Frank 无论你是Ext库的新手,抑或是想了解Ext的人,本篇文章的内容都适合你.本文将简单地介绍Ext的几个基本概念,和如何快速地做出一个动态的页面并运行起来,假设读者已具备了一些 ...

  2. css层叠样式表基础学习笔记--第一章 css简介及引入

    第一章 css简介及引入 1-01 css简介 1-02 css优缺点 1-03 css书写格式 1-04 css引入格式 行内样式 内部样式 外部样式 导入样式 1-05 css注释 1-01 cs ...

  3. Linux学习:第一章-Linux简介

    一 UNIX发展史 1 1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Multics工程计划,其目标是开发一种交互式的具有多道程序处理能力的分时操作 ...

  4. Ext.Net学习笔记22:Ext.Net Tree 用法详解

    上面的图片是一个简单的树,使用Ext.Net来创建这样的树结构非常简单,代码如下: <ext:TreePanel runat="server"><Root> ...

  5. Ext.Net学习笔记06:Ext.Net DirectEvents用方补充

    在ASP.NET控件上面使用DirectEvents 我们在ASP.NET中实现无刷新的页面请求的时候,通常会用到UpdatePanel,现在Ext.Net为我们提供了另外一种渠道:通过DirectE ...

  6. extlink.php,ExtJs 学习笔记基础篇 Ext组件的使用_extjs

    昨天刚接触到Extjs,简单写了篇学习笔记,今天继续. 天介绍一下Ext中组件举几个简单的例子做说明.注意:文章内容有些摘自本人学习过程中看到的资料. Ext2.0对框架进行了非常大的重构,其中最重要 ...

  7. Ext.Net学习笔记18:Ext.Net 可编辑的GridPanel

    Ext.Net GridPanel 有两种编辑模式:编辑单元格和编辑行. 单元格编辑: 行编辑: 可以看出,单元格编辑的时候,只有单元格会进入编辑模式,而行编辑模式中则对编辑行的所有可编辑字段统一进行 ...

  8. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

    Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...

  9. Ext.Net学习笔记10:Ext.Net ComboBox用法

    ComboBox是最常用的控件之一,它与HTML中的Select控件很像,但可以进行多选.自定义显示格式.分页等. ComboBox用法 <ext:ComboBox runat="se ...

最新文章

  1. 腾讯机器人实验室首曝光 攻坚“通用人工智能”
  2. 【Matlab 图像】开闭运算 imopen imclose
  3. 使用malloc初始化一个类和new初始化一个类的区别
  4. SVN switch 用法详解
  5. VS2008 JS调试和Silverlight 后台代码调试 相互影响的问题。---自己做实例证明
  6. 高性能服务器模型分类
  7. 互联网日报 | 7月19日 星期一 | 美团外卖成立骑手服务部;金山办公发布“文档中台”;一汽-大众奥迪在华销量突破700万辆...
  8. 2012Android开发热门资料110
  9. [USACO12NOV]同时平衡线Concurrently Balanced Strings DP map 思维
  10. pytorch进度条
  11. 马哥linux作业,马哥linux0803作业内容
  12. c语言课后编程题第八章答案,C语言课后编程题答案
  13. RTL8211E网口芯片在Uboot下调试问题
  14. 批量识别PDF文件(图片类型)中的文字
  15. 微信小程序赋能会员管理和会员营销互动
  16. Firefox,火狐about:config设置详解
  17. Hastelloy C22合金板材 圆钢 无缝管
  18. 每位开发人员都应铭记的10句编程谚语
  19. C++复数的具体实现
  20. 英语文献超过3个作者_TPR英语启蒙的3个误区,你都知道吗?

热门文章

  1. 【教程】unet图像分割检测墙体裂缝检测_瑕疵检测python含代码
  2. 优先队列之堆排序((二)升级版)
  3. linux双网卡配置
  4. GaussDB数据库基础函数介绍-上
  5. DBM、GDBM与C语言跨平台代码研究
  6. 解决maven库中没有Oracle jdbc驱动的问题Cannot resolve com.oracle:ojdbc14:10.2.0.1.0
  7. schema list validator --python cerberus
  8. Java知识点总结《努力篇上》
  9. 2023美赛春季赛Z题模型代码
  10. HDU-2189来生一起走