在我的应用程序中,我有一个访问整个树的函数,然后对某个类型的每个节点进行一些依赖于ajax的处理(即它会向它添加一些子节点)。整个过程需要一些时间才能运行,但由于它是异步的,因此浏览器不会冻结,用户可以在完成所有响应之前继续与已获得ajax响应的节点进行交互。 / p>
为此,我正在配置iconClass
,如下所示:
iconClass: function (event, data) {
switch (data.node.data.type) {
case "folder":
return "fa fa-folder";
break;
case "normal":
return "fa fa-folder-o";
break;
case "loading":
return "fa fa-spinner fa-spin fa-pulse";
break;
default:
return "fa fa-question-circle";
}
}
配置好这些图标后,我将node.data.type
设置为" loading"在开始对该节点的ajax调用之前,然后在ajax.success
我将node.data.type
重新设置为" normal"。如果节点的图标在屏幕上呈现,则仅此节点不会更改该节点的图标。
我知道只需拨打node.render()
或node.renderTitle()
即可达到我想要的效果,但是,因为我使用的是ext-tree
,所以这也会调用renderColumns()
此时不想要(renderColumns创建输入字段,这会导致我的jquery-validate插件出现问题。)
答案 0 :(得分:0)
您可以通过两种方式操作fancytree节点的HTML:
data.node.title
来操纵它的HTML。请注意,这是一个HTML字符串,没有DOM或JQuery对象data.node.li
。这是一个DOM元素。您可以使用$(node.data.li)