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 に答える