在我的 extjs 项目中,我有一些要在活动中panel
展示的 's 。这工作正常。但是,当我只是用新的 html 更新面板时,该事件就不起作用了。toolbar
mouseEnter
mouseenter
panel.update('hello');
然后我通过 Chrome 开发工具意识到,该update
方法是div
在写入新文本之前擦除最后一个嵌套的内部面板(即“你好”)。
每个面板都有
3
/4
嵌套的 div,但是当我们使用 update() 时,面板只有2
嵌套的 div?
这是没有在 上调用mouseenter
事件的主要原因,panel
因为我认为在Ext
方法之后无法将 识别panel
为有效面板update()
。
panel
无论如何,后来我通过检查chrome 控制台中的变量来解决这个问题,如下所示。
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 聊天室有空。