博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sys.UI.Control的理解
阅读量:4981 次
发布时间:2019-06-12

本文共 3182 字,大约阅读时间需要 10 分钟。

有如下代码:

1 /// 
2 3 Type.registerNamespace("AjaxEnabled"); 4 5 //create constructor 6 AjaxEnabled.PassTextBox = function(element) { 7 AjaxEnabled.PassTextBox.initializeBase(this, [element]); 8 9 this._weakCssClass = null;10 this._mediumCssClass = null;11 this._strongCssClass = null;12 }13 14 //define class15 AjaxEnabled.PassTextBox.prototype = {16 17 //initialize the UI control18 initialize: function() {19 AjaxEnabled.PassTextBox.callBaseMethod(this, 'initialize'); 20 21 this._onKeyupHandler = Function.createDelegate(this, this._onKeyup);22 $addHandlers(this.get_element(), {'keyup' : this._onKeyup}, this); 23 },24 25 dispose: function() { 26 $clearHandlers(this.get_element()); 27 AjaxEnabled.PassTextBox.callBaseMethod(this, 'dispose');28 },29 30 //define key press event31 _onKeyup : function(e) {32 33 //get password text 34 var pass = this.get_element().value;35 var strength = this.returnPasswordStrength(pass);36 37 switch (strength) {38 case "Weak":39 this.get_element().className = this._weakCssClass;40 break;41 case "Medium":42 this.get_element().className = this._mediumCssClass;43 break;44 case "Strong":45 this.get_element().className = this._strongCssClass;46 break; 47 }48 },49 50 //define properties51 get_weakCssClass: function() {52 return this._weakCssClass;53 },54 set_weakCssClass: function(value) {55 this._weakCssClass = value;56 },57 get_mediumCssClass: function() {58 return this._mediumCssClass;59 },60 set_mediumCssClass: function(value) {61 this._mediumCssClass = value;62 },63 get_strongCssClass: function() {64 return this._strongCssClass;65 },66 set_strongCssClass: function(value) {67 this._strongCssClass = value;68 },69 70 returnPasswordStrength: function(password) { 71 var strPass = new String(password.toString());72 if (strPass.length < 5) 73 {74 return "Weak"; 75 }76 else 77 {78 if (strPass.length < 8) 79 { 80 return "Medium"; 81 }82 else 83 {84 return "Strong"; 85 }86 }87 }88 }89 90 //register class as a Sys.Control91 AjaxEnabled.PassTextBox.registerClass('AjaxEnabled.PassTextBox', Sys.UI.Control);92 93 //notify loaded94 if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

第6、7行表明Sys.UI.Control的构造函数带参数。这里element正好是MicrosoftAjax框架会填充到这个函数里面的,DOM对象。这个DOM对象将会成为我们构造的Sys.UI.Control对象里面的一个property,这样之后我们就可以通过this.get_element()方法直接访问到这个dom对象了。

第21行的作用是保证_onKeyup时间被触发的时候,this对象一定是Sys.UI.Control对象。

第22行的作用是通过this.get_element()方法获得与这个控件关联的dom对象,然后将对应的事件绑定上去。

第51到68行的getter/setter作用是在使用$create方法是,传入值的时候使用的。

 

转载于:https://www.cnblogs.com/charrli/archive/2012/05/01/2478205.html

你可能感兴趣的文章
面向对象【林老师版】:多态与多态性(十三)
查看>>
PHP--------TP中的ajax请求
查看>>
sync framework参考收集系列
查看>>
PHP-----正则表达式
查看>>
spring中bean生命周期
查看>>
Java Service Provider Interface
查看>>
对象的生命周期
查看>>
【DL】模型蒸馏Distillation
查看>>
iOS:为什么TCP连接要三次握手,四次挥手
查看>>
将博客搬至CSDN
查看>>
Mysql查询某字段重复值并删除重复值
查看>>
使用python获取微医数据
查看>>
使用pyinstaller 打包python程序
查看>>
ubuntu 上开发.netcore
查看>>
小程序索引列表排序
查看>>
vue使用video.js解决m3u8视频播放格式
查看>>
前端H5与安卓和ios之间通信
查看>>
7-7
查看>>
knn 数字识别
查看>>
dataframe
查看>>