2013-12-13 63 views
0

簡單的新到sencha問題,讓我難住了一段時間。我正試圖在按鍵上發生事件。我希望將事件綁定在TextField上。我創建了一個小提琴簡單的按鍵不會觸發任何聽衆

http://jsfiddle.net/CjyFt/1/

initComponent: function() { 
    this.on('click', function() { 
     console.log('Clicked'); // doesn't fire either 
    });   
} 

我都各自獨立,如果這是一個問題想他們......

...   
enableKeyEvents: true, 
listeners : { 
    scope: this, 
    'keypress' : function(textfield, e) { 
     console.log('lovely'); // doesn't fire 
    } 
} 
... 

我試圖把聽者在每一個父類和我試圖綁定不同的事件而沒有其中任何一個工作,有人可以看看它是否明顯?

回答

2

keypress事件(以及相關的配置選項enableKeyEvents)在Ext.form.field.Text定義,但是你延長你的Ext.form.CustomField類從Ext.form.field.Base,這是父類的Ext.form.field.Text,因此不具有此事件(見class hierarchy) 。

我已經更新了你的小提琴,它工作得很好:http://jsfiddle.net/CjyFt/2/

我只是改變了這一點:

Ext.define('Ext.form.CustomField', { 
    extend: 'Ext.form.field.Text', // instead of Ext.form.field.Base 
... 

按鈕上單擊事件已經爲我工作,所以我不認爲有這是一個問題。

+0

啊!謝謝,現在我知道它爲什麼不起作用了。在我的辯護中,我怎麼知道'enableKeyEvents'的定義在哪裏? :( – Phil

+1

你可以在[docs](http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form.field.Text-cfg-enableKeyEvents)中看到它。在右邊每個屬性,函數或事件的一邊顯示定義它的類。另外,在[Ext.form.field.Base](http://docs.sencha.com/extjs/4.2.2/#!/api/ ext.form.field.Base)你不會找到這個配置 – matt

+0

haha​​ha,omgosh!再次感謝:)我愛'extjs'! – Phil