Attribute Class
鉴于不同浏览器对属性描述符的支持并不统一, KISSY 的 attribute 模块, 模拟实现了属性描述符, 提供属性的获取和设置操作, 即属性的 getter 和 setter 动作,它还有所有 CustomEvent.Target 的方法。
Constructor
Attribute
()
Item Index
Methods
Methods
addAttr
-
name
-
attrConfig
给宿主对象增加一个属性
Parameters:
-
name
String属性名
-
attrConfig
Object属性配置信息, 支持下面的配置项:
-
value
String | Number属性默认值。注意默认值请不要设置为复杂对象(通过自定义构造器 new 出来的),复杂对象可设置 valueFn 返回.如果配置项中没有设置 value, 会调用 valueFn 函数获取默认值并赋给 value
-
valueFn
Function提供属性默认值的函数,传入对象内部对应的属性值和属性名,取该函数的返回值作为最终值给用户
-
setter
Function写属性时的处理函数,传入从 set() 参数得到的属性值和属性名,如果返回非 undefined 则作为新的属性设置值
-
getter
Function读属性时的处理函数
-
validator
Function写属性时的验证函数,传入从 set() 参数得到的属性值和属性名,返回 false 则不改变该属性值
-
addAttrs
-
attrConfigs
-
values
批量添加属性
addTarget
-
target
添加冒泡事件源对象
Parameters:
-
target
Object事件往上冒泡的事件源
Example:
require(['util', 'event/custom'], function(Util, CustomEvent) {
function Custom(id){
this.id = id;
this.publish("run",{
bubbles:1
});
}
Util.augment(Custom, CustomEvent.Target);
var c1 = new Custom("c1");
var c2 = new Custom("c1");
c1.addTarget(c2);
c2.on("run",function(e){
S.log(e.target.id +" fires event run"); // => c1 fires event run
});
c1.fire("run");
});
detach
-
eventType
-
fn
-
[scope]
解除绑定的事件处理器
fire
-
type
-
eventData
触发绑定 type 类型的事件处理器, 并给触发的事件处理器的事件对象参数中混入数据 eventData
Returns:
如果其中一个事件处理器返回 false , 则返回 false, 否则返回最后一个事件处理器的返回值
get
-
name
获取属性 name 的值
Parameters:
-
name
String属性名.也可以为 “x.y” 形式. 此时要求 x 属性为包含 y 属性的普通 Object.当没有设置属性值时, 会取该属性的默认值
on
-
eventType
-
fn
-
[scope]
为相应事件添加事件处理器
Parameters:
-
eventType
String | Object- 当为String时 包含一个或多个事件名称的字符串, 多个事件名以空格分开。 事件可以通过加点来表示分组,例如 "click.one" , "click.two"
- 当为Object时,类似这样:
{ 'click':{ fn:function(){ }, filter: '' // delegate, once:true // 绑定一次 }, 'mouseenter':function(){} }
-
fn
Function当事件触发时的回调函数
-
[scope]
Object optional回调函数的 this 值. 如果不指定默认为绑定事件的当前元素
publish
-
type
-
cfg
配置自定义事件的一些特有信息
reset
-
opts
将所有属性全部重置为初始值. (调用一次 set() )
reset
-
name
-
opts
重置属性 name 为初始值. (调用一次 set() )