Как вы могли бы выполнить какое-то действие при нажатии кнопки-переключателя, например:
{
xtype: 'togglefield',
name: 'enableSnd',
label: 'Sound',
value : 1
}
?
Как вы могли бы выполнить какое-то действие при нажатии кнопки-переключателя, например:
{
xtype: 'togglefield',
name: 'enableSnd',
label: 'Sound',
value : 1
}
?
Вот пример, который я сейчас использую в своем приложении. Я использую функцию «beforechange» для проверки и проверки некоторых данных, прежде чем выполнять реальное действие в «change».
{
xtype: 'togglefield',
name: 'toggleName',
label: 'My Toggle Field',
listeners: {
beforechange: function (slider, thumb, newValue, oldValue) {
if (oldValue == 0 && newValue == 1) {
// Changing from off to on...validate something?
}
},
change: function (slider, thumb, newValue, oldValue) {
if (oldValue == 0 && newValue == 1) {
// Changing from off to on...do something?
}
else if (oldValue == 1 && newValue == 0)
// Changing from on to off...do something?
}
}
}
Взгляните на официальную документацию в сенче:
Для простой кнопки:
var playPauseButton = new Ext.Button({
ui: 'small',
text: 'Play',
listeners: {
tap: function() {
Ext.Ajax.request({
url: '/api/pause',
success: updateStatus,
failure: updateStatus });
}
}
});
Для переключателя событие кажется быть dragend
...
Я использую следующий код, чтобы установить начальное значение для переключаемого поля и реагировать на изменения переключаемого поля.
Сначала я отключаю поле переключения, а затем использую (неожиданное) поведение, когда Sencha Touch запускает событие изменения для этого поля переключения при его инициализации, чтобы включить поле переключения.
Обратите внимание, что это должно работать как для true, так и для false в качестве начальных значений. Если вы хотите изначально отключить поле переключения, вам придется удалить часть else.
{
xtype: 'togglefield',
title: 'LightSwitch',
label: 'Switch Lights',
value: false, // initial value
listeners: {
change: function(slider, thumb, newValue, oldValue) {
if (this.isDisabled() == false) { // isEnabled
alert('change Togglefield Event triggered'); // do something
}
else {
this.enable(); // enable togglefield
}
}
},
disabled: true,
}