1

我是第一次使用 dynatree 插件,我正在尝试动态添加节点。我的代码如下:

function DrawTree() {
 var names = GetChildName();  
 var rootNode = $("#ProcessRoleTree").dynatree("getRoot");
 var childNode = rootNode.addChild({ title: names[0].Name });
}

在运行时显示错误

Microsoft JScript 运行时错误:对象不支持此属性或方法

我错过了什么吗?我已经确认我包含了所需的库:

<script src="Jquery/jquery/jquery.js" type="text/javascript"></script>
<script src="Jquery/jquery/jquery-ui.custom.js" type="text/javascript"></script>
<script src="Jquery/jquery/jquery.cookie.js" type="text/javascript"></script>

<link href="Jquery/src/skin-vista/ui.dynatree.css" rel="stylesheet" type="text/css" />
<script src="Jquery/src/jquery.dynatree.js" type="text/javascript"></script>

提前致谢!

4

2 回答 2

0

您需要先初始化树,然后才能调用dynatree("getRoot"),例如在最简单的实例中

function DrawTree() {
  var names = GetChildName();
  $("#ProcessRoleTree").dynatree();
  var rootNode = $("#ProcessRoleTree").dynatree("getRoot");
  var childNode = rootNode.addChild({ title: names[0].Name });
 }

应该管用。您可以改为将许多其他选项传递到树初始化步骤中,例如参见文档

于 2012-03-12T11:03:01.730 回答
0

这可能不是您的问题,但值得一试。有时,在将 jQuery 与其他库一起使用时,您可能会遇到冲突代码的冲突。jQuery 使用 $ 符号作为 jQuery 的快捷方式。dynatree 库也使用美元符号来表示它们的功能。

我在实现我的树时遇到了这个问题,这就是我修复它的方法。正如你所看到的,我用 'jQuery' 替换了所有的 '$'。

<script type="text/javascript">
jQuery.noConflict();

function DrawTree() {
    var names = GetChildName();
    jQuery("#ProcessRoleTree").dynatree();

    var rootNode = jQuery("#ProcessRoleTree").dynatree("getRoot");

    //Try adding a key
    var childNode = rootNode.addChild({ title: names[0].Name, key: "001" });
}
</script>
于 2012-03-30T13:19:40.037 回答