2013-10-01 103 views
2

我有一个数据库,我从中进行多个查询,并且我想在不同的jsTrees中显示结果。 我用它来创建一个树的代码如下所示:多个jsTree实例

<div id="container"> 
<ul> 
    <li><a>Iteration 1</a> 
     <ul> 
      <li><a>Story A</a></li> 
      <li><a>Story B</a></li> 
      <li><a>Story C</a></li> 
     </ul> 
    </li> 
    <li><a>Iteration 2</a> 
    </li> 
</ul> 

和功能:

<script type="text/javascript"> 
jQuery(function($) 
{ 
    $('#container').jstree(); 

} 
); 
</script> 

我的问题是,这适用于已知数量的树木,但会有当我需要创建n个(未知的,取决于数据库中的字段的变化)数量的函数时(因为每个函数引用特定的div id),这是一个问题。 所以,我的问题是,如何创建多个jsTrees?

+0

创建它们的客户端或服务器端?无论哪种方式,您都需要为树生成HTML,并在每个树的根上创建.jstree调用,这很容易完成多个类型或动态调用。你有哪些特定部分有困难? – Rup

+0

我尝试在服务器端创建它们。我可以使用for循环为每个div(树)创建具有不同ID的树的HTML。问题是我不知道如何用所需的不同参数创建jQuery(函数($))。 – relysis

+0

那么一些jQuery库可以在多个输入上正常工作,所以你可能能够给它们全部相同的类,然后在该类的选择器上调用单个jstree。但是,如果您可以在服务器上动态生成HTML块,那么您可以为每棵树动态生成一行额外的脚本,不是吗?你正在使用哪个Web框架? – Rup

回答

0

我想我有这个相同的问题,所以我开始在github上的a discussion

看来,这是因为将节点id存储到唯一的DOM id s中。

1

使用$('div[id^="tree"]').jstree();到JS适用于所有树木