鉴行志

A blogging framework for hackers.

Extjs Treenode高亮问题

| Comments


extjs treenode高亮问题

介绍如何做extjs treenode高亮的问题

extjs 如果高亮一个对象

extjs中有一个highlight方法,可以对任意的dom element对象进行高亮,因此我们只要

node.getUI().getEL().highlight();

这样就可以实现一个结节的高亮,但是在使用过程中,我发现只是第一次对象可以高亮,以后选择的对象都
没有高亮,很是苦恼。后在Extjs论坛提问,有人提出使用fly方法来选择dom对象。

为什么使用fly呢,我查阅了一些资料发现,为了避免查询后的对象占用内存,使用的了Ext.fly()方法,查询对象可以覆盖。改了以后还是这个情况,只是第一次可以高亮,后几次无法高亮。

为何不能高亮treenode

没有办法,我只有通过firebug来调试了,对比可以高亮和不能高亮的树节点,我发现一个问题extjs treenode生成的dom有些生成了id值(很奇怪,Extjs只为部分结点都生成id值)。我想是不是因为没有id所以没有所
以高亮出错。

接下来要测试的问题就是给所有的树节点dom生成id,extjs提供了生成id的方法,Ext.id()。
按下面的代码就可以成功高亮了。


var el = node.getUI().getEl();
Ext.id(el);
var eldoc = Ext.Element.fly(el);
eldoc.highlight();

Comments