我是ExtJS的新手,一般只有极少的javascript技能。我正在完成一些任务来学习ExtJS4,但是这个让我望而却步。当切换一个切换按钮时,我正试图让听众检查一个复选框(当然只有一个)。无论我如何编写代码,我都会从Firebug中得到类似的错误:
missing : after property id
togglebtn.toggle: function(tog, true){
关于我做错了什么以及如何纠正错误的想法?
...谢谢
var togglebtn = Ext.create('Ext.button.Button', {
enableToggle: true
, text: 'Checked'
});
var mychkbxgrp = Ext.create('Ext.form.CheckboxGroup', {
columns: 3
, alias: 'mycheckboxgroup'
, items:[{
boxLabel: 'Item1'
, name: 'rb'
, inputValue: '1'
, listeners:{
togglebtn.toggle: function(tog, true){
setValue: true
}
}
},{
boxLabel: 'Item2', name: 'rb', inputValue: '2'
},{
boxLabel: 'Item3', name: 'rb', inputValue: '3'
}]
});
Ext.create('Ext.toolbar.Toolbar', {
renderTo: document.body
, width: 600
, height: 40
, items:[{
xtype: 'form'
, height: 30
, width: 180
, bodyPadding: 4
, items:[
mychkbxgrp
]
}
, togglebtn
]
});
答案 0 :(得分:0)
事件的AFAIK处理程序必须是函数,并且必须为此对象定义。您正尝试在复选框定义中设置切换处理程序,而它应该在按钮上。 下面是该侦听器的示例实现
var togglebtn = Ext.create('Ext.button.Button', {
enableToggle: true,
text: 'Checked',
listeners: {
toggle: function(sender, checked){
var container = sender.findParentByType(); // find parent container
var items = container.query('checkboxfield'); // find checkboxes
Ext.each(items, function(i){ // iterate through checkboxes
i.setValue(checked); // check/uncheck
});
}
}
});
您必须从复选框定义中删除togglebtn.toggle: function(tog, true){
setValue: true
}
。