2016-06-24 81 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); 
} 

然后监听“点击”事件而不是“焦点”。