Ext.dom.Element 常用方法解析
Ext.Element,Ext.core.Elemen,Ext.dom.Element 这几个类都是一个类,在EXT当中给起了别名而已,这个类到作用主要是针对DOM元素操作的封装,使我们操作针对DOM操作更加方便了,而且底层屏蔽了浏览器到差异。
那么如何返回一个Ext.Element对象呢?通过Ext.get(el)就可以了。
参数 el : String/HTMLElement/Ext.Element(The id of the node, a DOM Node or an existing Element.)
// by id
var el = Ext.get("my-div");
// by DOM element reference
var el = Ext.get(myDivElement);
像上面这样就返回了一个Ext.Element对象,然后我们就可以使用它的API来简化我们的开发了,下面介绍几个常用的功能。
1. 给元素添加事件:el.on( eventName, fn, [scope], [options] ) 。
el.on('click', this.onClick, this, {
single: true,
delay: 100,
stopEvent : true,
forumId: 4
});
eventName:事件的名称 例如: click,dbclkc,mouseover等等。
fu: 事件的处理函数。
scope(可选):事件处理函数中this的指向,如果不指定默认为Element对象本身。
options(可选): 处理函数到配置信息,这个参数里到内容比较多,下面一一介绍。
scope: 事件处理函数中this的指向,如果不指定默认为Element对象本身。
delegate:执行el子孙元素中的某一个元素影响事件,此处可以是一个选择器表达式(Ext.core.DomQuery)
stopEvent: (preventDefault stopPropagatio)同时生效
preventDefault :取消默认动作(比如给A标签添加了click事件,那么点击A标签以后 首先会响应click事件,然后浏览器不会跳转【正常会href的】)
stopPropagatio: 取消传播(这个不知道干啥的)
normalized :如果设置为false 那么事件处理函数的第一个参数就是浏览器到 EVENT对象,否则是Ext.EventObject
target:这个属性目前也不知道干啥的
delay:事件延迟多少毫秒
single :事件只执行一次
buffer :事件在多少毫秒之内只执行一次,比如设置为2000 那么在2秒内只能触发一次事件
2. getViewSize( ) 获取元素的宽高
var vpSize = Ext.getBody().getViewSize();
// all Windows created afterwards will have a default value of 90% height and 95% width
Ext.Window.override({
width: vpSize.width * 0.9,
height: vpSize.height * 0.95
});