在ExtJS 4中使用单击处理程序调用函数

时间:2011-08-09 14:31:01

标签: javascript extjs extjs4

我在工具栏中有一个功能,让我们称之为:

Ext.define('MyArchive.Toolbar', { 
  search: function() {
    console.log('searching');
  }
}

现在我想在点击按钮时调用此功能。所以我在工具栏设置中的afterRender中添加了一些点击处理程序:

afterRender: function() {
  Ext.getCmp('search-button').on('click', this.search);
} 

然而,这不起作用,我最终需要走完全路线:

afterRender: function() {
  Ext.getCmp('search-button').on('click', function() {
    quick_search();
  )};
}

我的第一次尝试没有像我预期的那样应用点击处理程序的任何特殊原因?

感谢您的任何解释或重构!其他模式/习语欢迎......

1 个答案:

答案 0 :(得分:1)

接下来尝试:

    var panelOverall = new Ext.form.FormPanel({
    html: 'bla',
    search: function() {
        console.log('searching');
    },
    buttons: [
        {
            text: 'Moo',
            id: 'button1',
            handler: function(){
                //window.destroy();
            }
        }
    ],
    afterRender: function() {
        Ext.getCmp('button1').on('click', this.search);
    } 
});

正在为我工​​作..我错过了什么吗?