最近在调试Ext.Panel与FusionChart的显示问题时,发现Ext.Panel在事件处理上的一点差异。(关于Ext.Panel和FusionChart另在其它的文章中讨论)
扩展Ext.Panel为ChartPanel时,在initEvents方法中用addListener来增加事件监听,同时在创建ChartPanel实例时用下面的代码指定相关的事件处理器
{ .... listeners: { show: showHandler, render: renderHandler, .... }, .... }
运行时会发现,通过实例化时的config配置参数指定的listener先于用addListener方法添加的事件处理器执行。特别是像render这样的一次性方法,如果在initEvents中增加处理器,会抓不到相关的事件。
总结就是initEvents方法是初始化事件的,对于对执行顺序要求比较高(自己体会吧,不太好说^^)的事件处理,应该在initComponent添加,或直接通过配置参数指定。
附事件顺序:
show - 显示
render - rendered=false时 绘图
resize - 调整尺寸
activate - 激活
作者:basecn 发表于2011-6-7 9:59:00
原文链接
阅读:581 评论:0
查看评论