Ext3.4移除change事件

xtype:"combo",
id:'queryBrand',
triggerAction:"all",
fieldLabel:"品牌名称",
store:queryBrandDisplay,
typeAhead: true,
name : 'queryBrand',
hiddenName:"sid",
autoWidth:true,
mode:'local',
multiSelect:true,
triggerAction : "all",
valueField: 'sid',
displayField:'brandName',
listeners:{
select :function(e,f,g){
// 如何被选中时禁用change:function () value等于null时再次启动change:function

},
change:function(e,f,g){
queryBrnadName = Ext.getCmp('queryBrand').getValue();
queryBrandDisplay.load({params:{cond:queryBrnadName}});
Ext.getCmp('queryBrand').focus();
setTimeout('Ext.getCmp("queryBrand").expand();',0.1);
}
}

请大神详细点写,快疯了。

第1个回答  2014-12-04
把你的select 和change提取出来写成单独的函数形式。比如这样listeners{
select :selectHandler(),
change:changeHandler()

}

....
...
function selectHandler(){
...
var el=Ext.getCmp('queryBrand');
if(el.getRawValue()!=null){
Ext.getCmp('queryBrand').un('change',changeHandler());
}else{
Ext.getCmp('queryBrand').on('change',changeHandler());
}

}
function changeHandler(){
...

}本回答被提问者和网友采纳
相似回答
大家正在搜