在 Sencha Touch 上收听 enable/disable 事件
Listen to enable/disable events on Sencha Touch
我需要在容器上收听 enable/disable 事件,但我注意到没有此类事件。我试过听它以防文档中没有提到它,但它肯定不存在。
我用谷歌搜索了一下,发现了这个..
Ext.define('My.Custom.Container',{
extend:'Ext.Container',
onEnable:function(){
console.log("it's listening");
}
});
看起来很有希望,但根本行不通。
有什么办法可以监听这些事件吗?我不想让 jQuery 混在这里,因为这太过分了。
好的,我刚刚找到问题的答案。
Ext.define('My.custom.Container',{
extend:'Ext.Container',
config:{
....config....
},
enable: function(){
this.callParent(arguments);
// do something else;
},
disable: function(){
this.callParent(arguments);
// do something else;
}
});
我仍然很好奇是否有其他解决方法。所以仍然欢迎回答。
许多组件从中继承方法的 container
xtype 确实有一个事件,该事件会在其 disabled
状态发生变化时触发。此事件称为 disabledchange
并在每次容器为 enabled/disabled.
时触发
在下面的代码中,我们可以看到它在 button
上的运行,纯粹是因为它提供了视觉上更好的演示(因为您可以立即看到状态),但它继承了完全相同的方法和事件容器。
Ext.application({
name: 'Fiddle',
launch: function() {
Ext.Viewport.add({
xtype: 'container',
padding: 10,
items: [{
xtype: 'button',
text: 'Button To be disabled/enabled',
listeners: {
disabledchange: function(button, value, oldValue, eOpts) {
console.log('changing my disabled state to ' + value);
}
}
}, {
xtype: 'button',
text: 'click to disable/enable above button',
listeners: {
tap: function() {
var isButtonDisabled = Ext.Viewport.query('button')[0].getDisabled();
Ext.Viewport.query('button')[0].setDisabled(!isButtonDisabled);
}
}
}]
});
}
});
我需要在容器上收听 enable/disable 事件,但我注意到没有此类事件。我试过听它以防文档中没有提到它,但它肯定不存在。
我用谷歌搜索了一下,发现了这个..
Ext.define('My.Custom.Container',{
extend:'Ext.Container',
onEnable:function(){
console.log("it's listening");
}
});
看起来很有希望,但根本行不通。
有什么办法可以监听这些事件吗?我不想让 jQuery 混在这里,因为这太过分了。
好的,我刚刚找到问题的答案。
Ext.define('My.custom.Container',{
extend:'Ext.Container',
config:{
....config....
},
enable: function(){
this.callParent(arguments);
// do something else;
},
disable: function(){
this.callParent(arguments);
// do something else;
}
});
我仍然很好奇是否有其他解决方法。所以仍然欢迎回答。
许多组件从中继承方法的 container
xtype 确实有一个事件,该事件会在其 disabled
状态发生变化时触发。此事件称为 disabledchange
并在每次容器为 enabled/disabled.
在下面的代码中,我们可以看到它在 button
上的运行,纯粹是因为它提供了视觉上更好的演示(因为您可以立即看到状态),但它继承了完全相同的方法和事件容器。
Ext.application({
name: 'Fiddle',
launch: function() {
Ext.Viewport.add({
xtype: 'container',
padding: 10,
items: [{
xtype: 'button',
text: 'Button To be disabled/enabled',
listeners: {
disabledchange: function(button, value, oldValue, eOpts) {
console.log('changing my disabled state to ' + value);
}
}
}, {
xtype: 'button',
text: 'click to disable/enable above button',
listeners: {
tap: function() {
var isButtonDisabled = Ext.Viewport.query('button')[0].getDisabled();
Ext.Viewport.query('button')[0].setDisabled(!isButtonDisabled);
}
}
}]
});
}
});