如何为面板添加click事件并在面板中作为参数在控制器中监听它

时间:2014-03-18 09:48:13

标签: extjs extjs4.1

我正在动态地将面板添加到我的容器中,一旦添加了所有面板,我想为面板设置click事件,并在其中一个控制器中监听事件,并单击面板作为参数。

我有以下用于添加点击事件的代码。

 '#productListPanel': {              
          afterrender: this.onProductPanelAfterRender,
},


 onProductPanelAfterRender: function(panel) {
    panel.mon(panel.el, 'click', this.onProductPanelClick);
},

 onProductPanelClick: function(a,b) {
    console.log("a");
    console.log(a);
    console.log("b");
    console.log(b);
},

它工作正常并添加了click事件,但我无法确定单击哪个面板。

有人可以帮帮我吗。

由于

1 个答案:

答案 0 :(得分:4)

将动态面板添加到容器时,可以在面板定义中添加一个监听器:

listeners: {
   'render': function(panel) {
       panel.body.on('click', function() {
           nameOfYourApp.app.fireEvent('ClickPanel',panel);
       });
    }
}

单击面板时触发事件并将此事件侦听到控制器中。

您可以将此代码添加到控制器的init函数中:

    this.application.addListener({
        'ClickPanel':this.clickPanel
    });

并将“clickPanel”功能添加到控制器中:

clickPanel:function(panel){
    // Your code
}

希望这对您的问题有所帮助!