我正在动态地将面板添加到我的容器中,一旦添加了所有面板,我想为面板设置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事件,但我无法确定单击哪个面板。
有人可以帮帮我吗。
由于
答案 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
}
希望这对您的问题有所帮助!