是否可以专门呈现Fancytree节点的图标?

时间:2015-10-07 18:36:28

标签: javascript jquery fancytree

在我的应用程序中,我有一个访问整个树的函数,然后对某个类型的每个节点进行一些依赖于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插件出现问题。)

1 个答案:

答案 0 :(得分:0)

您可以通过两种方式操作fancytree节点的HTML:

  • 如果HTML位于" .fancytree-title" -span中,您可以通过更改data.node.title来操纵它的HTML。请注意,这是一个HTML字符串,没有DOM或JQuery对象
  • 如果您想更改其他HTML,可以操纵data.node.li。这是一个DOM元素。您可以使用$(node.data.li)
  • 轻松地使用JQuery对其进行操作
祝你好运