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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ExtJS 的 TreePanel 控件可以监听以下事件: 1. `beforeitemappend`:在节点被添加到 TreePanel 前触发。 2. `beforeitemcollapse`:在节点被折叠前触发。 3. `beforeitemexpand`:在节点被展开前触发。 4. `beforeiteminsert`:在节点被插入到 TreePanel 前触发。 5. `beforeitemmove`:在节点被移动前触发。 6. `beforeitemremove`:在节点被移除前触发。 7. `beforeload`:在加载节点数据前触发。 8. `checkchange`:当节点的复选框状态改变时触发。 9. `itemappend`:在节点被添加到 TreePanel 后触发。 10. `itemclick`:当节点被点击时触发。 11. `itemcollapse`:在节点被折叠后触发。 12. `itemcontextmenu`:当节点右键菜单被触发时触发。 13. `itemdblclick`:当节点被双击时触发。 14. `itemexpand`:在节点被展开后触发。 15. `iteminsert`:在节点被插入到 TreePanel 后触发。 16. `itemkeydown`:当节点键盘按下时触发。 17. `itemkeypress`:当节点键盘按键按下时触发。 18. `itemkeyup`:当节点键盘按键释放时触发。 19. `itemmousedown`:当鼠标在节点上按下时触发。 20. `itemmouseenter`:当鼠标进入节点时触发。 21. `itemmouseleave`:当鼠标离开节点时触发。 22. `itemmouseup`:当鼠标在节点上释放时触发。 23. `itemremove`:在节点被移除后触发。 24. `load`:在节点数据加载完成后触发。 25. `selectionchange`:当选择的节点发生变化时触发。 这些是常用的 TreePanel 事件,你可以根据需要选择监听相应的事件来实现对应的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值