日期:2014-05-16  浏览次数:20391 次

extjs中的事件注册和调用顺序
  今天在看extjs时,看到了一个不错的例子,分享下,说讲解注册和删除浏览器
事件的,比如如下例子:
<input type="button" id="button1" value="单击我" /> <input type="button"
id="button2" value="在我上面移动" /></center>

<script>
function buttonOnclick1(){alert('用ExtJS注册的第一个单击事件被触发')}
function buttonOnclick2(){alert('用ExtJS注册的第二个单击事件被触发')}
function init()
{
var button1 = Ext.get('button1');
var button2 = Ext.get('button2');
button1.on('click', buttonOnclick1);
button1.on('click', buttonOnclick2);
button2.on('mousemove', function(obj){alert(button2.getValue());button1.un('click', buttonOnclick2) });
}
Ext.onReady(init);
</script>
注意这里:
button2.on('mousemove', function(obj){alert(button2.getValue());button1.un('click', buttonOnclick2) });

当点button1时,会先激发的是buttonOnclick2()事件,因为extjs里,后注册的先触发,
所以先会显示用ExtJS注册的第二个单击事件被触发',再显示用ExtJS注册的第一个单击事件被触发';
而之后用un取消了button1中的buttonOnclick2事件,所以当鼠标移动经过button2后,再点第一个按钮时,出现的应该是用ExtJS注册的第一个单击事件被触发'