событие на нажатие кнопки
в ext designer набросала форму редактора формулы.что-то вроде калькулятора.мне надо чтобы при нажатии например кнопки с значение "1" в текстовой строке появилось значение "1".extjs начала изучать недавно..очень срочно надо!!!!!!!!:help:
вот что пока сделала:
MyWindow = Ext.extend(MyWindowUi, {
initComponent: function() {
MyWindow.superclass.initComponent.call(this);
this.findById("save").on("click", function(button, event) {
Ext.MessageBox.show({
title:'Сообщение',
msg: 'Сохранить?',
buttons: Ext.MessageBox.OKCANCEL,
animateTarget: 'mb4',
icon: Ext.MessageBox.QUESTION
});
});
this.findById("cancel").on("click", function(button, event) {
Ext.MessageBox.show({
title:'Сообщение',
msg: 'Отменить?',
buttons: Ext.MessageBox.OKCANCEL,
animateTarget: 'mb4',
icon: Ext.MessageBox.QUESTION
});
});
}
});
заранее очень благодарна! |
Ну может как-то так:
new Ext.Window({
title: 'Калькулятор',
layout: 'fit',
width: 700,
height: 550,
buttons: [{
text: '1',
handler: function(){
Ext.getCmp('id-field').setValue(+'1');
},{
text: '2',
handler: function(){
Ext.getCmp('id-field').setValue(+'2');
}
}]
});
И если вы только начали не учите 3-й. Учите 4-й ExtJS |
ane4ka,
судя по коду, вы очень любите jQuery)) а вот так
this.findById("save")
в ExtJS 4+ не прокатит))можно как-то так:
Ext.create('Ext.window.Window', {
title: 'Калькулятор',
width: 300,
setInputValue: function(v){
var input = this.down('textfield');
input.setValue(input.getValue()+v);
},
setSumResult: function(){
var input = this.down('textfield'),
arr = input.getValue().split('+'),
val = 0;
for(var i=0; i<arr.length; i++){
val+=parseInt(arr[i]);
}
input.setValue(val);
},
height: 300,
buttons: [
{
text: '1',
handler: function(){
this.up('window').setInputValue(this.text);
}
}, {
text: '2',
handler: function(){
this.up('window').setInputValue(this.text);
}
}, {
text: '+',
handler: function(){
this.up('window').setInputValue(this.text);
}
}, {
text: '=',
handler: function(){
this.up('window').setSumResult();
}
}
],
items: [
{
layout: 'table',
items: [
{
xtype: 'textfield',
hideLabel: true
}
]
}
]
}).show();
|
Цитата:
|
+1. Цепочки - это, блеать, особенность JS, а не jQuery!
|
Цитата:
я просто указал что в ExtJS 4 такого метода нет, ибо он является устаревшим. Цитата:
setHandler здесь применяться должен... |
Цитата:
насмешил... |
спасибо всем большое!очень помогли:)
и не ссорьтесь))) |
nekto_O, я имел в виду, что это не jQuery позволяет реализовывать цепочные вызовы, а сам язык. Про другие языки я вообще не слова не сказал. Думаю, спорить больше не о чем)
|
Цитата:
Цитата:
upd и вообще само определение "цепочки" бред... |
nekto_O, вы меня неправильно поняли) Я не говорил, что JS уникален в этом роде. Я говорил о том, что это не заслуга jQuery, а возможность в JS.
Вы меня правда не понимаете? |
А кто говорил что это заслуга джейкуэри?
Это стиль кодинга в духе ООП-парадигмы так то. Я человеку указал что его код похож на код jQuery-юзера потому что там похожим(не совсем, но очень похожим) образом вешается обработчик на кнопку. А в ExtJS на кнопку обработчик вешается с помощью setHandler(), а не on(); И плюс ко всему в ExtJS4, именно в 4 нет метода findById. |
nekto_O, у меня к вам нету больше никаких претензий)
|
Цитата:
elem.addEventListener('click', function(){
});
Или вы считаете что яваскрипт сделан по подобию джуквери? |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
devote, пойду за попкорном. :D
|
Цитата:
Цитата:
|
Цитата:
Скажу более, я чаще всего юзаю чистый JS (после C# конечно) по мере необходимости, но согласись писать какие-то эпичные прототипы на JS нет смысла если это уже написали/упростили в ФВ. А jQuery я вообще уже не использую, потому что не считаю этот ФВ полноценным, вырос из него. Цитата:
И вообще советую вспомнить название топика, предложенные варианты не единоверны, кодинг это творческий процесс и совершенного кода не бывает. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
скачайте себе последнюю версию тут -> ссылка |
я уже решила эту проблему:) спасибо!
|
| Часовой пояс GMT +3, время: 08:08. |