2012-03-12 28 views
1

私はdynatreeプラグインを初めて使用しています。ノードを動的に追加しようとしています。 私のコードは以下の通りです:addChildメソッドを使用できません

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

実行時にエラーが

Microsoft JScript runtime error: Object doesn't support this property or method

を表示午前私は何かが足りません? 私は必要なライブラリが含まれていることを確認しています:事前に

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

感謝を!

+1

GetChildName()です。配列を返すと、その配列内のオブジェクトは.Nameプロパティを持ちますか? –

+0

はいGetChildName()はNameをプロパティとして持つ配列を返します – HRI

+0

例外がコード内にあるかどうか(つまり、rootNode nullまたはdynatreeコマンドobejct以外のもの)、またはdynatreeコードのどこかにあるかどうかを確認できますか? IEデバッガ(またはFirefoxまたはChromeデバッガ)を使用してこれにステップインできますか? – Rup

答えて

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> 
+0

私のために働いた、ありがとう – HRI

+0

それを聞いてうれしい! – Zack

0

dynatree("getRoot")に電話する前に、まずツリーを初期化する必要があります。最も単純な例では

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

が動作するはずです。代わりに、他の多くのオプションをツリーのinitステップに渡すことができます。 the documentationを参照してください。

+0

私はお勧めしましたが、まだ同じエラーが発生しました – HRI

+0

申し訳ありません。あなたのページに 'id =" ProcessRoleTree "の両方が実際に存在していることと、このコードを呼んでいる時点でDOMに存在していることを確認できますか?つまり、これはjQueryレディハンドラから呼び出されます。ページが読み込まれますか?それ以外の場合は、 '.dynatree'呼び出しの両方に踏み込んで、あなたが期待していることをしていることを確認する必要があります。 – Rup

+0

私は何を意味するのか分かりません!私はボタンのクリックでこのメソッドを呼び出しています – HRI

関連する問題