2016-06-24 79 views
0

我有一個TextFiled組件,其中添加清除觸發器。像這樣的:extjs twinText焦點時點擊觸發器

this.config.triggers = { 
     clear: { 
      cls : (Ext.baseCSSPrefix + 'form-clear-trigger'), 
      handler : function() { 
       this.setValue();     
      } 
     } 

    } 

... 所以,我處理事件集中

this.text= Ext.create('TwinText', { 
     width: 400, 
     emptyText: 'dddd', 
     listeners: { 
      scope: this, 
      focus: this.show,    
     }, 
     editable : false 
    }); 

現在,當我點擊觸發乾淨,焦點事件被解僱。我怎樣才能暫停這個?

+0

焦點事件在觸發器點擊之前觸發,所以當單擊觸發器(即在組合內)時無法防止焦點集合在組合上。您可以通過將「focusable:false」設置爲組合來防止焦點,但焦點事件永遠不會被觸發。你的用例是什麼?我的想法是,你正在傾聽絞盡腦汁的事件「焦點」。 –

+0

點擊TextFiled後,我想打開一些窗口(面板),但TextField沒有任何'點擊'事件,這就是爲什麼我使用焦點 –

回答

1

您可以將點擊事件添加到您的Textfield組件,而不是使用焦點。

例。在雙字節定義中加入:

initEvents: function() { 
    this.callParent(arguments); 
    this.mon(this.inputEl, 'click', this.onClick, this); 
}, 

onClick: function (e) { 
    this.fireEvent('click', this, e); 
} 

然後監聽「點擊」事件而不是「焦點」。