私の extjs プロジェクトには、イベントpanel
で表示するtoolbar
がいくつかありmouseEnter
ます。これはうまくいっています。しかし、パネルを新しい html で更新しただけでは、mouseenter
イベントが機能しません。
panel.update('hello');
次に、Chrome 開発者ツールを使用して、メソッドが新しいテキストを書き込む前にupdate
、最後にネストされた内部パネルを消去していることに気付きました (つまり、「こんにちは」)。div
各パネルには
3
/4
ネストされた div がありますが、update() を使用すると、パネルには2
ネストされた div しかありませんか?
これが でmouseenter
イベントを呼び出さなかった主な理由でした。これはpanel
、がを有効なパネル アフターメソッドとしてExt
識別できないためです。panel
update()
とにかく、後でpanel
以下のようにクロムコンソールで変数をチェックすることでこの問題を解決しました。
panel.body.dom.childNodes[0].children[0].childNodes[0].data = 'hello';
上記の実装はうんざりするように見えますが、私にとってはうまくいきました。これを行う他の良い方法はありますか?
編集:
//In controller
this.control({
'#monthCalendar>panel>panel': {
render: function(container){
container.on('mouseenter',function(){
//do something here
},container,{element: 'el'});
}
}
})
アップデート前:
<div class="x-panel x-box-item x-panel-default" id="panel-1078" style="left: 870px; top: 0px; margin: 0px; width: 174px; height: 52px;">
<div id="panel-1078-body" class="x-panel-body x-panel-body-default x-panel-body-default x-box-layout-ct" style="width: 174px; height: 52px; left: 0px; top: 0px;">
<div id="panel-1078-innerCt" class="x-box-inner " role="presentation" style="height: 50px; width: 172px;">
<div id="panel-1078-targetEl" style="position: absolute; width: 172px; left: 0px; top: 0px; height: 1px;">
March 01
</div>
</div>
</div>
</div>
アップデート後:
<div class="x-panel x-box-item x-panel-default" id="panel-1078" style="left: 870px; top: 0px; margin: 0px; width: 174px; height: 52px;">
<div id="panel-1078-body" class="x-panel-body x-panel-body-default x-panel-body-default x-box-layout-ct" style="width: 174px; height: 52px; left: 0px; top: 0px;">
February 01
</div>
</div>
私はSencha チャット ルームで利用できます。