我有一個sencha觸摸的奇怪問題。 更改屏幕上卡住的選擇區域中的值。我有一個應用程序,其中有選擇字段,並在更改選擇字段值時,我正在應用一些規則。規則是刪除所有屏幕元素並新添加它。屏幕卡在sencha觸摸選擇字段更改監聽器
下面是代碼快照。
現在,它與鉻,safari瀏覽器和iPad設備瀏覽器工作得很好。但是現在它給iPhone和Android設備帶來了奇怪的問題。屏幕卡住了。更改選擇字段中的值後,不允許發生任何事件。
採取的步驟;另外,我在源代碼的每一步都將警報作爲記錄器來確保無限循環。我還將異常處理程序確保發生錯誤。沒有錯誤,既不會造成內存/運行時問題,也不會出現無限循環運行。
App.views.MySampleScreen = Ext.extend(Ext.Panel, {
initComponent : function() {
var titlebar = {
dock : 'top',
xtype : 'toolbar',
cls: 'x-panel-title',
title : "Home Screen"
};
var buttonbar = {
xtype : 'toolbar',
dock : 'bottom',
cls: 'x-panel-footer',
items : [
{xtype : "spacer"}
]
};
var myFieldSet = new Ext.form.FieldSet({
xtype: 'fieldset',
id : 'myFieldSet',
name: 'myFieldSet'
});
var formBase = new Ext.form.FormPanel({
ui: 'round',
id: 'standardFormBase',
items: [myFieldSet],
});
Ext.apply(this, {
scroll: 'vertical',
pinHeaders: true,
dockedItems : [titlebar, buttonbar],
items : [formBase],
listeners: {
beforeactivate: function(panel) {
createAndInitScreen();
}
}
});
App.views.MySampleScreen.superclass.initComponent.call(this);
}
});
Ext.reg('App.views.MySampleScreen', App.views.MySampleScreen);
function createAndInitScreen(){
var myFieldSet = Ext.getCmp("myFieldSet");
myFieldSet.removeAll(true);
var stateList2 = new Ext.form.Select({
label: 'State',
name: 'state',
id: 'stateLis2t',
widht: '100%',
autoLoad: true,
labelWidth: '40%',
options: [{
text: 'Test', value: 'Test'
}, {
text: 'Test2', value: 'Test2'
}, {
text: 'Test3', value: 'Test3'
}],
listeners: {
afterrender: function(ele) {
},
change: function(field, value) {
createAndInitScreen(); // Here is the problem
// if i remove this then this works, but my need
//is to call CreateAndInitScreen after value change in select()
}
}
});
myFieldSet.items.add(stateList2);
myFieldSet.show();
myFieldSet.doLayout();
}
嘗試刪除stateList2的id屬性。您正在創建更多具有相同ID的'Ext.form.Select'對象。這可能會導致奇怪的問題... – ilija139 2012-02-01 10:23:37
@ ilija139我已經從Ext.form.Select中刪除了Id屬性。但問題仍然存在。 – 2012-02-01 10:43:27
然後我不知道。你應該改變整個代碼。如果你想改變'form.Select'中的項目,那麼你需要刪除項目並添加新的項目,而不是刪除整個對象,然後創建一個新項目。代碼結構不好,你可能會耗盡內存或類似的東西,或者一些不定式的循環(事件或遞歸)。 – ilija139 2012-02-01 10:48:24