2

我正在使用jsTree插件来构建自定义项目树。我知道如何通过 ajax 请求加载项目,但在我的情况下,我在变量中有节点,m_items它是数组类型。当节点扩展时,我只需要从 中返回部分项目m_items,因此我需要一些方法来使用自定义函数加载子节点,该函数接受可扩展节点并将返回节点数组。

我认为至少有一种方法可以解决它,但它是一种自定义方式:初始加载根级别和每个子节点的一个级别。当任何节点打开时,加载下一级节点。但是这种方式至少有一个漏洞:加载了太多不必要的项目。所以我正在搜索一些内置功能。

4

1 回答 1

1

这是一个有趣的问题,但是如果您的目标浏览器是最新的浏览器,不包括 < IE9,这应该可以工作:

var TreeHelper = function(items, limit, start) {
    this.items_ = items || [];
    this.limit = limit || 5;
    this.start = start || 0;
}

TreeHelper.prototype = {
    push: function(item) {
        this.items_.push(item);
        return this;
    }
};

Object.defineProperty(TreeHelper.prototype, 'items', {
    get: function() {
        return this.items_.slice(this.start, this.limit);
    }
});

var helper = new TreeHelper([item1, item2, item3, ...], 5, 0);
......
function_that_needs_m_Items(helper.items);
于 2013-08-30T20:33:46.270 回答