2

Extjs 4.1.1(a),在我的项目中,有一个面板(带有 Id #monthCalendar),它在一个视图中有 42 个容器。我正在尝试为该视图创建一个控制器。在这里,控制器的操作是在我单击面板内的任何容器时显示“hello”消息。我尝试了以下在 chrome 控制台中没有显示任何错误的方法。

在我的控制器中:

onLaunch: function(){
    Ext.each(Ext.ComponentQuery.query('#monthCalendar container'),function(container){
        container.on('click',function(){
            alert("hello");
        },container,{element: 'el'})
    })
}
4

2 回答 2

3

这个应该工作

Ext.each(Ext.ComponentQuery.query('#monthCalendar container'),function(c){
    c.on({ click: {fn: function(){ alert("hello"); },scope: this, element:'el' }})
})
于 2013-03-07T08:13:29.520 回答
2

调用 click 事件时,面板内的容器似乎没有被重新渲染。(虽然,容器在页面上可见。我不知道可能是什么错误?)所以,onLaunch我没有使用 ,而是使用init了模板我称之为render事件(间接称为click事件)并且这有效。

init: function(){
    this.control({
        '#monthCalendar container': {
            render: this.onContainerRendered
        }
    })
},
onContainerClicked: function() {
    alert('The container was clicked');
},
onContainerRendered: function(container) {
    container.on('click',this.onContainerClicked,container,{element: 'el'})
},

工作小提琴

于 2013-03-07T09:44:15.800 回答