Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   событие на нажатие кнопки (https://javascript.ru/forum/extjs/23882-sobytie-na-nazhatie-knopki.html)

ane4ka 10.12.2011 01:39

событие на нажатие кнопки
 
в 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
				});
			});
			
			
    }
});

заранее очень благодарна!

Bkmz_1_ 10.12.2011 08:06

Ну может как-то так:

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

nekto_O 10.12.2011 13:40

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();

devote 11.12.2011 03:26

Цитата:

Сообщение от nekto_O
ane4ka,
судя по коду, вы очень любите jQuery))
а вот так
this.findById("save")

ничего общего с джуквэри не вижу.

trikadin 11.12.2011 03:41

+1. Цепочки - это, блеать, особенность JS, а не jQuery!

nekto_O 11.12.2011 09:24

Цитата:

Сообщение от devote
ничего общего с джуквэри не вижу.

с чего вы взяли что я эту часть кода имел ввиду?)))
я просто указал что в ExtJS 4 такого метода нет, ибо он является устаревшим.
Цитата:

Сообщение от trikadin
+1. Цепочки - это, блеать, особенность JS, а не jQuery!

цепочка, написанная на ExtJS в данном случае не может так выглядеть ибо на кнопку обработчик таким образом нельзя повесить.
setHandler здесь применяться должен...

nekto_O 11.12.2011 12:46

Цитата:

Сообщение от trikadin
Цепочки - это, блеать, особенность JS

Особенность? хочешь сказать что, например, в C# или Java нельзя использовать цепь функций для доступа к определенному свойству/методу?)))
насмешил...

ane4ka 11.12.2011 13:19

спасибо всем большое!очень помогли:)
и не ссорьтесь)))

trikadin 11.12.2011 13:31

nekto_O, я имел в виду, что это не jQuery позволяет реализовывать цепочные вызовы, а сам язык. Про другие языки я вообще не слова не сказал. Думаю, спорить больше не о чем)

nekto_O 11.12.2011 14:49

Цитата:

Сообщение от ane4ka
и не ссорьтесь)))

да никто не ссорится, просто меня как программиста на C# возмутила эта фраза
Цитата:

Цепочки - это, блеать, особенность JS
тоесть отсюда следует что цепочки это оказывается особенность JS, а не ООП.

upd и вообще само определение "цепочки" бред...


Часовой пояс GMT +3, время: 15:06.