BUI基础-方法和事件

作者: 学术报告板 | 来源:发表于2019-11-20 16:25 被阅读0次

控件的方法

由于BUI的控件是基于原型链的,所以BUI中控件的方法都是在prototype上的,可以调用自己的或者父控件定义的方法。

控件的事件

控件的事件是由Observable类定义的,所有的控件都是此类的子类,所以Observable的属性和方法,所有控件都支持。

Observable类的方法的API在最下面,主要有以下几个:

  1. on : 注册事件
  2. off: 移除事件
  3. 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;">

  1. <script>

  2. var list = new List({

  3. //...

  4. });

  5. list.render();

  6. function callback(){}

  7. //注册事件

  8. list.on('itemclick',callback);

  9. //触发事件

  10. list.fire('itemclick');

  11. //移除事件

  12. list.off('itemclick',callback);

  13. </script>

</pre>

属性与方法和事件

在上一章节里我们详细的讲述了属性,属性的设置和获取有几个相关的方法:

  1. get : 获取属性
  2. set : 设置属性,触发属性更改事件
  3. 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;">

  1. <script>

  2. //构造类A

  3. var A = function(config){

  4. A.superclass.constructor.call(this,config); //将自己的配置项传递到BUI.Base的构造函数中

  5. };

  6. //定义属性

  7. A.ATTRS = {

  8. a : {

  9. },

  10. b : {

  11. }

  12. };

  13. BUI.extend(A,BUI.Base); //使A继承BUI.Base,支持属性

  14. var a = new A({ //创建对象

  15. a : 'a',

  16. b : 'b',

  17. c : 'c'

  18. });

  19. a.on('beforeAChange',function(ev){

  20. alert(ev.newVal + ev.prevVal);

  21. });

  22. a.on('beforeCChange',function(ev){

  23. alert(ev.newVal + ev.prevVal);

  24. });

  25. a.get('a'); //'a'

  26. a.set('a','new a'); //触发beforeAChange,触发afterAchange

  27. a.get('a'); //new a

  28. a.setInternal('a','new a1'); //不触发任何事件

  29. a.get('a'); //new a1

  30. a.get('c'); // c

  31. a.set('c','new c');

  32. </script>

</pre>

事件的API

下面只是简单的列表,详细信息请查看API文档

下一步学习

BUI的方法和事件学习完成后,你可以去看一下如何组织模块CMD组织模块,然后进入到BUI控件编写的学习中。

相关文章

  • BUI基础-方法和事件

    控件的方法 由于BUI的控件是基于原型链的,所以BUI中控件的方法都是在prototype上的,可以调用自己的或者...

  • BUI入门系列-Hello BUI !

    导引欢迎使用BUI!在这一章节里,我们将学习以下内容: 如何加载BUI文件和开始使用BUI的一些基础功能BUI依赖...

  • BUI基础-配置项和属性

    配置项 配置项类实例化时的初始配置,决定对象的初始值,我们看一下示例: function A (a,b){ } v...

  • BUI基础-使用样式文件

    BUI的css文件 BUI提供了以下css文件 种类文件内容基础样式文件dpl.cssBUI提供的基于bootst...

  • BUI基础-工具类

    为什么 jQuery默认提供的工具类有很多不足,所以我们针对以下内容作了扩展: 继承相关的方法: extend,a...

  • 利用Bui.select封装自定义多项选择弹出菜单

    界面如下: 主要用到了bui.select的初始化,text(), value()和selectNone()方法

  • View的事件体系全面分析

    基础概念 1、view中事件传递会调用的几个方法 2、ViewGroup中事件传递会调用的几个方法 3,事件指的是...

  • 《JS原理、方法与实践》- canvas游戏

    游戏其实就是在动画的基础上添加了控制,也就是添加键盘和鼠标的事件监听。添加事件的方法前面已经学过,添加键盘事件和普...

  • 月晚

    la dia bui la duoo ang ,bui la dia bui la duoo ang ,bui l...

  • Android studio升级到3.3遇到的问题

    问题一:android native 的方法无法与cpp中方法关联 问题二:External Native Bui...

网友评论

    本文标题:BUI基础-方法和事件

    本文链接:https://www.haomeiwen.com/subject/cagoictx.html