2

Extjs 4.1.1(a)、私のプロジェクトには#monthCalendar、View 内に 42 個のコンテナーを持つパネル ( Id 付き) があります。そのビューのコントローラーを作成しようとしています。ここで、コントローラーのアクションは、パネル内のコンテナーをクリックするたびに「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

クリックイベントが呼び出されたときにパネル内のコンテナが再作成されなかったようです(ただし、コンテナはページに表示されていました。バグが何であるかわかりません)。そこで、を使用する代わりに、テンプレート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 に答える