无论你是Ext库的新手,抑或是想了解Ext的人,本篇文章的内容都适合你。本文将简单地介绍Ext的几个基本概念,和如何快速地做出一个动态的页面并运行起来,假设读者已具备了一些JavaScript经验和初级了解HTML Dom。否则的话,请从阅读初学JavaScript资源开始。
下载Ext
如果你未曾下载过,那应从这里下载最新版本的Ext http://extjs.com/downloads。
针对你的下载需求,有几个不同的弹性选项。通常地,最稳定的版本,是较多人的选择。下载解包后,那个example文件夹便是一个探索Ext的好地方!
开始!
我们将使用Ext,来完成一些JavaScript任务。
第一步要做的是,下载本教程的示例文件。Zip文件包括三个文件:ExtStart.html, ExtStart.js和ExtStart.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!YouhaveExtconfiguredcorrectly!");
});

Element:Ext的核心
大多数的JavaScript操作都需要获取页面上的某个元素(reference),好让你来做有趣的事情。传统的JavaScript方法,是通过ID获取Dom节点的:
varmyDiv=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(){varmyDiv=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("Youclickedthebutton");
});
});
加载好页面,代码依然会执行,不过区别是,包含alert()的function是已定义好的,但它不会立即地被执行,是分配到按钮的单击事件中。用浅显的文字解释,就是:获取ID为'myDottom'元素的引用,监听任何发生元素被单击的情况,并分配一个function,以准备任何单击元素的情况。
正路来说,Element.select也能做同样的事情,即作用在获取一组元素上。下一例中,演示了页面中的某一段落被单击后,便有弹出窗口:
Ext.onReady(function(){
Ext.select('p').on('click',function(){
alert("Youclickedaparagraph");
});
});
这两个例子中,事件处理的function均是简单几句,没有函数的名称,这种类型函数称为“匿名函数(anonymous function)”,即是没有名的的函数。你也可以分配一个有名字的event handler,这对于代码的重用或多个事件很有用。下一例等效于上一例:
Ext.onReady(function(){
varparagraphClicked=function(){
alert("Youclickedaparagraph");
}
Ext.select('p').on('click',paragraphClicked);
});
到目前为止,我们已经知道如何执行某个动作。但当事件触发时,我们如何得知这个event handler执行时是作用在哪一个特定的元素上呢?要明确这一点非常简单,Element.on方法传入到even handler的function中(我们这里先讨论第一个参数,不过你应该浏览API文档以了解even handler更多的细节)。在我们之前的例子中,function是忽略这些参数的,到这里可有少许的改变,——我们在功能上提供了更深层次的控制。必须先说明的是,这实际上是Ext的事件对象(event object),一个跨浏览器和拥有更多控制的事件。例如,可以用下列的语句,恢复这个事件的指定的DOM节点:
Ext.onReady(function(){
varparagraphClicked=function(e){
Ext.get(e.target).highlight();
}
Ext.select('p').on('click',paragraphClicked);
});
注意指定的是DOM节点,所以我们首先将其恢复成为适当的元素,然后执行欲完成的事件,这个例子中,我们看见段落是高亮显示的。
分享到:
相关推荐
4.8.4. 当某一天,需要往form加个图片什么的,该咋办? 4.9. 还要做文件上传哟 4.10. 非想非想,单选框多选框 4.10.1. 多选呢checkbox 4.10.2. 单选呢radio 4.11. 自动把数据填充到form里 5. 雀跃吧!超脱了一切的弹...
4.8.4. 当某一天,需要往form加个图片什么的,该咋办? 4.9. 还要做文件上传哟 4.10. 非想非想,单选框多选框 4.10.1. 多选呢checkbox 4.10.2. 单选呢radio 5. 雀跃吧!超脱了一切的弹出窗口。 5.1. 呵呵~跳出来和...
在《学习YUI.Ext基础第一天》这篇文章中,作者回顾了过去对于Web开发技术的看法与实践经验,特别是关于JavaScript及其在构建现代Web应用中的作用。文章通过两个帖子的摘录,深入探讨了JavaScript的重要性以及它在...
#### 一、Ext.data.Store简介 `Ext.data.Store`是ExtJS框架中用于管理数据的核心组件之一。它主要负责数据的存储、加载、更新等操作,并且提供了多种方法来方便地处理这些数据。本文将详细介绍`Ext.data.Store`的...
### 学习YUI.Ext 第四天--对话框Dialog的使用 #### 一、引言 随着Web应用程序的发展,用户界面的设计变得越来越重要。YUI.Ext 是一款强大的JavaScript框架,它提供了一系列丰富的用户界面组件来帮助开发者快速构建...
6. ext2样式:这可能是指EXT框架的第二代皮肤,可能具有与EXT2版本兼容的特性。 "作用方法.txt"文件很可能是包含了如何将这些皮肤应用到EXT框架中的指南,包括如何引入CSS文件、设置配置项等步骤。按照这个文本的...
在学习YUI.Ext的第三天,我们回顾和深化了一些JavaScript的基础概念,特别是关于变量和数据类型的细节。首先,我们要理解变量的声明和作用域。全局变量是未使用`var`关键字声明的变量,可以在整个程序中访问,而局部...
8. **Z**:在年内的第几天,从0开始,闰年是365。 9. **W**:ISO-8601格式的年内星期数,从星期一开始,范围01-53。 10. **F**:月份的完整英文名称,如January到December。 11. **m**:月份的两位数表示,不足两...
在JavaScript的世界里,YUI.Ext是一个强大的库,它基于Yahoo! User Interface Library (YUI)构建,提供了丰富的组件和布局管理功能,使得开发者能够轻松创建交互式的Web应用程序。今天我们将深入探讨JavaScript的...
在本文中,我们将深入探讨YUI.Ext库中的一个重要组件——TreePanel。TreePanel是一个用于构建交互式树形结构视图的组件,它在YUI.Ext 0.40版本中首次引入。尽管YUI自身已经提供了TREE VIEW组件,但开发者Jack Slocum...
详细整理了一整套ExtJs的学习资料!从基础到精通实例讲解~~你们会有很大收获的
在学习YUI.Ext框架的过程中,了解和掌握View和JSONView组件是非常重要的。View组件和它的子类JSONView在处理不同类型的数据展示上有各自的优势。在一些需要展示二维关系数据的场景中,比如表格,我们通常会使用Grid...
### 学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点) #### 引言 在本篇文章中,我们将深入探讨如何使用YUI.Ext库中的TreePanel组件来实现异步获取树节点的功能。不同于同步加载方式,异步加载能够显著...
- HTML 指的是超文本标记语言 (**H**yper **T**ext **M**arkup **L**anguage)是用来描述网页的一种语言。 - HTML 不是一种编程语言,而是一种标记语言 (markup language) - 标记语言是一套标记标签 (markup tag)
获取.config 文件是获取内核配置的第一步。通过复制 Tiny4412 配置文件可以获取到基本的内核配置。取消内核安全模式可以提高内核的性能。 选择内核支持的文件系统是非常重要的。不同的文件系统有不同的特点和优势。...
异步取节点的思路是这样的: 1、先定义一个初始化节点(也可以不定义,看个人需求) 2、yui-ext根据该节点id请求服务器,获得子节点各属性 3、循环 特点:可以在上一级目录中,在服务器端预先将该节点是否有子节点...