再次我可能是愚蠢的,我遇到了对象的监听器事件。
我有:
new Ext.form.Radio({
boxLabel:'Yes',
id: 'car_price_type_yes',
name: 'car_price_type',
value: 1,
listeners: {
select: function (e) {
alert('x');
}
}
})
我正在尝试在单击单选按钮时显示警报。
感谢。
答案 0 :(得分:1)
问题来自将单选按钮视为某种非正常实体。他们似乎根本不叫听众。
通过文档,论坛,源代码和其他所有内容后,我偶然发现了处理程序方法,如果你想检测“点击”,你似乎必须声明它们有一个处理程序(如下所示) “事件,或”更改“事件或”选择“事件。我能够获得4.1.3实际生成的唯一“事件”是调用我的处理函数,其他事件名称似乎都没有产生任何东西。文档中的许多人都指出,改变并不总是会发生变化,我从来没有设法解决它。
{
boxLabel: 'Field Based'
, name: 'alert_type'
, inputValue: 'field'
, xtype: "radiofield"
, listeners: {
// won't be called
click: function(a,b,c,d) {
console.log("FB",a,b,c,d);
}
// won't be called
,change: function(a,b,c,d) {
console.log("Change",a,b,c,d);
}
// won't be called
, select: function(field, newValue, oldValue) {
console.log(field, "Radio Selected ", newValue, "to", oldValue);
}
// won't be called
, check: function(field, newValue, oldValue) {
console.log(field, "Radio Checked ", newValue, "to", oldValue);
}
}
// WILL BE CALLED
, handler: function(field, state) {
console.log(field, state, c, d)
}
},
处理程序将生成日志输出,如:
constructor {boxLabel: "Field Based", name: "alert_type", inputValue: "field", listeners: null, handler: function…}
true
答案 1 :(得分:-2)