EXT 删除 监听
想做一個效果:使用Ext驗證textfield中數據,一旦數據有效就初始化某個模塊。
試了好多 監聽事件,只有“valid”事件可以,但是其驗證分為好幾次,我猜測可能是有首先驗證表單有效性,然后驗證數據有效性,即,“valid”事件監聽一次,觸發多次。在加載完成后,如果還存在此監聽,很麻煩的,所以有必要去掉。
移除該事件使用 Ext.removeListener()方法,簡寫為un(un是添加監聽事件on的反義詞)。
添加監聽Ext.on()和移除監聽Ext.un(),在使用時,其第一個參數為 監聽事件,第二個為要移除的在 監聽事件觸發的函數,第三個為 作用域(我理解就是監聽的對象,一般不寫或寫this),需要注意的是 第二個參數 不能使用匿名函數,?需要使用函數名,要不然就不能保證操作的是同一個函數。
我當時寫的例子如下:valid事件的添加和觸發后移除該事件
?| 1 | aa = function() {Ext.getCmp('FinanceContractWin').initFormPanel();}? //初始化函數 |
| 1 | bb = function() {Ext.getCmp('payTimes').removeListener('valid',aa,this);} //移除valid事件函數 |
| 1 | if(!Ext.getCmp('payTimes').hasListener('valid')){ Ext.getCmp('payTimes').on('valid',aa,this); } //監聽到valid后調用初始化函數 |
| 1 | if(Ext.getCmp('payTimes').hasListener('valid')){ Ext.getCmp('payTimes').on('focus',bb,this); } //獲取焦點后移除valid監聽事件 |
在此記錄一下??
轉載于:https://www.cnblogs.com/webu/archive/2012/10/26/2741053.html
總結
- 上一篇: Codeforces Round #13
- 下一篇: 读《移山之道》的收获与疑问(阅读作业之刘