ExtJS
魔豆爸
擅长Web开发前端技术,具有多种浏览器下开发经验。精通 JavaScriptAJAX编程熟练使用主流JS库。手写JS能力强,运用无干扰的JS思想进行开发。熟练使用CSS及DHTML,W3C标准的推广和贯彻者。熟悉Java语言,MVC设计模式,StrutsSpring架构
展开
-
读Ext之十(解析JSON)
首先,回到第一篇。使用Ext.apply为Ext对象添加了一些属性, Ext.apply(Ext, { ... USE_NATIVE_JSON : false, ... }); USE_NATIVE_JSON 即为其中之一, 可以使用它来设置是否开启浏览器原始的JSON(即JSON.parse,JSON.stringify)来...2011-01-03 11:36:12 · 184 阅读 · 0 评论 -
读Ext之八(原生事件对象的修复及扩充)
Ext库也对浏览器原生的事件对象做了包装,以保证兼容所有浏览器。这里 列举了浏览器原生事件对象各浏览器中兼容性。这里 列出了各种情况下事件对象的获取。在Ext事件管理类 Ext.EventManager 中会悄悄的将浏览器原始事件对象进行转换e = Ext.EventObject.setEvent(e); Ext.EventObject 即为包装后的事件对象(暂称为Ex...2010-11-27 18:51:12 · 110 阅读 · 0 评论 -
读Ext之七(多任务定时管理)
Ext.util.TaskRunner 用来管理多任务定时管理。每一个任务是一个JS对象,具有以下属性run, interval, args, scope, duration, repeat。示例如下:var task = { run : function(){...}, interval : 1000, args : [], scope : obj, durati...2010-11-25 17:24:23 · 164 阅读 · 0 评论 -
读Ext之六(延迟任务的执行)
Ext.util.DelayedTask类从名字上就可以看出它是延迟任务的执行。即指定时间之后执行任务。整个类如下:Ext.util.DelayedTask = function(fn, scope, args){ var me = this, id, call = function(){ clearInterval(id); ...2010-11-24 17:36:59 · 197 阅读 · 0 评论 -
读Ext之五(Dom的低级封装)
上篇看了ext-base-event.js(Ext.lib.Event),这篇看ext-base-dom.js(Ext.lib.Dom)。后续EventManager.js(Ext.EventManager)其中会用到该篇的Ext.lib.Dom。整体浏览ext-base-dom.js可以看到还是一个匿名函数执行,与上一篇不同的是这次并非返回包装好的对象pub,而是直接将对象赋值给Ext.li...2010-11-14 12:08:33 · 94 阅读 · 0 评论 -
读Ext之四(事件的低级封装)
十一前读了Ext core的Ext.js,这篇开始读ext-base-event.js。该文件定义了Ext.lib.Event对象,Ext.lib这个命名空间在Ext core的Ext.js中命名的。Ext.ns("Ext.util", "Ext.lib", "Ext.data"); Ext.lib上的属性如下:Ext.lib.AjaxExt.lib.AnimExt.lib...2010-11-11 17:10:57 · 112 阅读 · 0 评论 -
读Ext之十五(操作批量元素)
前两篇读了Ext.Element,这篇介绍的Ext.CompositeElementLite类是对集合(Ext.Element)的操作。Ext.select / Ext.element.select 依赖于Ext.CompositeElementLite。 类的大概结构如下(省略了挂在prototype上的很多方法),Ext.CompositeElementLite = funct...2011-02-07 09:14:19 · 113 阅读 · 0 评论 -
读Ext之三(原型扩展)
续上篇,Ext.ns = Ext.namespace; 有了一个简写的namespace。整个匿名函数执行完了。接下来Ext.ns("Ext.util", "Ext.lib", "Ext.data");Ext.elCache = {}; 分别为Ext添加了util,lib,data,elCache属性,默认都是空的对象。Ext.apply(Function.prot...2010-09-30 09:51:01 · 130 阅读 · 0 评论 -
读Ext之二(实用方法)
上篇看到Ext.extend,接着往下看。 Ext.namespace,用来管理Ext库命名空间的方法namespace : function(){ var o, d; Ext.each(arguments, function(v) { d = v.split("."); o = window[d[0]] = window[d[0...2010-09-24 16:37:20 · 124 阅读 · 0 评论 -
读Ext之一(实用方法)
第一句window.undefined = window.undefined; 兼容IE6以下的浏览器,有人 解释过了。 定义Ext全局变量Ext = { version : '3.1.0'}; 注意这里没有使用var,不使用var声明变量被认为是不好的编程习惯,尤其是函数内声明变量不写var更被称为是无穷无尽的Bug根源。这里则不会,因为变量E...2010-09-24 10:19:12 · 106 阅读 · 0 评论 -
读Ext之十四(Ext元素)
上篇读了Ext.Element的部分方法,这篇继续。El.addMethods方法,var ep = El.prototype;El.addMethods = function(o){ Ext.apply(ep, o);}; El是Ext.Element类的简写,addMethods可认为是该类的静态方法。无须new使用类名直接调用。其内部调用的是Ext.apply,该...2011-01-18 14:57:59 · 166 阅读 · 0 评论 -
读Ext之十三(Ext元素)
终于越来越接近Ext的核心了。这篇开始Ext.Element,这里说的Ext元素指的是Ext.Element类的实例。 任何前端库都会涉及到对HTMLElement的操作,JQuery更是以其为中心,一个$()函数调用后将DOM元素以索引方式存在 JQuery对象 中。 Ext则使用了一个称为 Ext.Element 的类,如 Ext.get/Ext.fly 返回的都是该类的实...2011-01-16 16:57:56 · 119 阅读 · 0 评论 -
读Ext之十二(在各个位置插入元素)
IE 除了发明 innerHTML这个快捷创建DOM元素(及其属性等)外,还发明了insertAdjacentHTML /insertAdjacentText 方法。它们首次在IE4中引入,随后其它浏览器如Opera、Safari、Chrome相继实现了它们。唯独Firefox没有实现。鉴于insertAdjacentHTML被众多浏览器实现,html5已经将 其 列纳入,in...2011-01-13 13:17:04 · 206 阅读 · 0 评论 -
Ext core 3.1.0的一个大Bug
Ext core 3.1.0(下载地址)中Ext.DomHelper中的applyStyles方法源码如下: applyStyles : function(el, styles){ if(styles){ var i = 0, len, style; el = Ext.fly(el);...2011-01-12 19:28:41 · 143 阅读 · 0 评论 -
读Ext之十一(通过innerHTML创建元素)
innerHTML 这个由 IE 引入的属性成了事实标准,各浏览器均支持。尽管html4中没有承认它,但html5已经正式将其纳入。我们知道任何一个库都少不了DOM操作,因为用JS操作DOM(早期微软称DHTML)是日常开发中最基本的工作之一。这篇主要讲述Ext.DomHelper中的 createHtml 函数。首先Ext.DomHelper为一个单例对象。使用其时可沿用Ext库...2011-01-09 22:19:56 · 198 阅读 · 0 评论 -
读Ext之九(事件管理)
Ext的事件管理非常强大。主要定义在Ext.EventManager对象(单例模式)中。该对象有以下方法addListener removeListenerremoveAllgetListenerspurgeElement_unloadonDocumentReadyonunstoppedMouseDownEventon / un 是 addListe...2010-12-08 08:39:39 · 162 阅读 · 0 评论