控件的方法
由于BUI的控件是基于原型链的,所以BUI中控件的方法都是在prototype
上的,可以调用自己的或者父控件定义的方法。
控件的事件
控件的事件是由Observable类定义的,所有的控件都是此类的子类,所以Observable的属性和方法,所有控件都支持。
Observable类的方法的API在最下面,主要有以下几个:
- on : 注册事件
- off: 移除事件
- fire:触发事件
<pre class="prettyprint linenums" style="padding: 8px; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); margin-top: 8px; box-shadow: rgb(251, 251, 252) 40px 0px 0px inset, rgb(236, 236, 240) 41px 0px 0px inset; color: rgb(51, 51, 51); font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
-
<script>
-
var list = new List({
-
//...
-
});
-
list.render();
-
function callback(){}
-
//注册事件
-
list.on('itemclick',callback);
-
//触发事件
-
list.fire('itemclick');
-
//移除事件
-
list.off('itemclick',callback);
-
</script>
</pre>
属性与方法和事件
在上一章节里我们详细的讲述了属性,属性的设置和获取有几个相关的方法:
- get : 获取属性
- set : 设置属性,触发属性更改事件
- setInternal : 设置属性,不触发属性更改事件
在设置属性值时,会触发2个事件,beforeXxxChagne 和 afterXxxChange事件
<pre class="prettyprint linenums" style="padding: 8px; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); margin-top: 8px; box-shadow: rgb(251, 251, 252) 40px 0px 0px inset, rgb(236, 236, 240) 41px 0px 0px inset; color: rgb(51, 51, 51); font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
-
<script>
-
//构造类A
-
var A = function(config){
-
A.superclass.constructor.call(this,config); //将自己的配置项传递到BUI.Base的构造函数中
-
};
-
//定义属性
-
A.ATTRS = {
-
a : {
-
},
-
b : {
-
}
-
};
-
BUI.extend(A,BUI.Base); //使A继承BUI.Base,支持属性
-
var a = new A({ //创建对象
-
a : 'a',
-
b : 'b',
-
c : 'c'
-
});
-
a.on('beforeAChange',function(ev){
-
alert(ev.newVal + ev.prevVal);
-
});
-
a.on('beforeCChange',function(ev){
-
alert(ev.newVal + ev.prevVal);
-
});
-
a.get('a'); //'a'
-
a.set('a','new a'); //触发beforeAChange,触发afterAchange
-
a.get('a'); //new a
-
a.setInternal('a','new a1'); //不触发任何事件
-
a.get('a'); //new a1
-
a.get('c'); // c
-
a.set('c','new c');
-
</script>
</pre>
事件的API
下面只是简单的列表,详细信息请查看API文档
网友评论