2013-08-30 61 views
1

我使用jsTree插件來構建自定義項目的樹。我知道如何通過ajax請求加載項目,但在我的情況下,我的節點變量爲m_items,它是Array類型。當節點擴展時,我只需要返回m_items中的部分項目,所以我需要一些方法來加載具有自定義函數的子節點,該函數接受可擴展節點,並返回一個節點數組。jsTree自定義函數加載節點

我認爲至少有一種方法可以解決它,但它是一種自定義的方式:初始化加載每個子節點的根級和一級。當任何節點打開時,然後加載下一級節點。但這種方式至少有一次泄漏:加載太多不必要的物品。所以我正在尋找一些內置功能。

回答

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);