jQuery Simple Tree:以编程方式添加节点

时间:2008-11-12 13:03:19

标签: javascript jquery

我正在尝试向jQuery SimpleTree添加一个新节点,但我似乎能够得到的是“sTC.addNode不是一个函数”......

var simpleTreeCollection = $('.simpleTree').simpleTree({
    animate:true,
    drag:false,
    autoclose: false,
    afterClick:function(node){},
    afterDblClick:function(node){},
    beforeMove:function (destination, source, pos){},
    afterMove:function(destination, source, pos){},
    afterAjax:function() {},
    afterContextMenu:function(node){}
});

simpleTreeCollection.addNode('test', 'test');

有什么建议我可能做错了吗?是否有可能添加节点?

4 个答案:

答案 0 :(得分:1)

嗯这很棘手,我不得不说我不喜欢插件,因为它使用数字作为id和w3c状态“属性的值必须以AZ或az范围内的字母开头,后跟字母...... ......“

然而,为了让你工作,你需要首先选择一个节点,以便像这样添加它

    //Select first child node in tree
    $('#2').click();
    //Add new node to selected node
    simpleTreeCollection.get(0).addNode(1,'A New Node')

答案 1 :(得分:1)

也许看看jsTree

答案 2 :(得分:0)

仅供参考,上述代码在其演示页面的firebug控制台中运行。在树上确保使用正确的选择器突出显示节点

答案 3 :(得分:0)

我通过编辑addNode函数解决了这个问题。我评论了temp_node.remove();并添加了dragNode_destination.after(dragNode_source);

就像那样:

        TREE.addNode = function(id, text, callback)
        {
            var temp_node = $('<li><ul><li id="'+id+'"><span>'+text+'</span></li></ul></li>');
            TREE.setTreeNodes(temp_node);
            dragNode_destination = TREE.getSelected();
            dragNode_source = $('.doc-last',temp_node);
            TREE.moveNodeToFolder(dragNode_destination);
//          temp_node.remove();
            dragNode_destination.after(dragNode_source);
            if(typeof(callback) == 'function')
            {
                callback(dragNode_destination, dragNode_source);
            }
        };