событие на нажатие кнопки
в 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, время: 23:10. |