我与一些js代码有一个与范围相关的问题,也许有人可以向我解释我做错了什么:
我正在使用extJs并获得了这个片段:
Ext.onReady(function(){
// Form for filter selection
var formFilter = new Ext.FormPanel({
// ...
items: [
cbGroup = new Ext.form.ComboBox({
fieldLabel: 'Group',
store: dsGroups,
displayField: 'name',
valueField: 'number',
emptyText : '- Please choose a group -',
listeners:{
'select': function() {
alert(cbGroup.selectedIndex +' '+this.selectedIndex);
}
}
})
]
});
});
问题: 当我在侦听器函数中通过'this'访问组合框时,我得到了selectIndex属性的正确结果。 当我通过它的var名称访问组合框时,我总是得到结果'-1'。 非常感谢您的帮助!
答案 0 :(得分:0)
Ext.onReady(function(){
var self = this;
...
alert(cbGroup.selectedIndex +' '+self.selectedIndex);
答案 1 :(得分:0)
尝试在设置对象后添加侦听器。所以:
Ext.onReady(function(){
// Group Combobox:
var cbGroup = {};
// Form for filter selection
var formFilter = new Ext.FormPanel({
// ...
items: [
cbGroup = new Ext.form.ComboBox({
fieldLabel: 'Group',
store: dsGroups,
displayField: 'name',
valueField: 'number',
emptyText : '- Please choose a group -',
})
]
});
cbGroup.on('select',function() {
alert(cbGroup.selectedIndex +' '+this.selectedIndex);
});
});