私はXML駆動のホームページを作っています。メニュー構造が生成され、メニュー要素をクリックすると、ページ上のコンテンツが変更されます。レベルx要素をクリックすると、その子要素がメインdivのリストに表示されます。これは、情報を得るために正しいXMLノードを見つけるために引数としてidをとる関数changePage(id)によって行われます。グローバル変数を使用してJavascriptの同じ関数内から関数を呼び出す
私はこのリストの要素をリンクにしたいのですが、クリックするとchangePage-functionを呼び出す必要があります。これは、ツリー内を降りるのに使用されます。
var root = loadXML(aXML.xml);
function changePage(id){
var current_node = root; // <-- here I get error when clicking on the a-element.
... // creating list
var aElement = document.createElement('a');
aElement.onclick = new Function("changePage('" + index + "')");
}
私が作成したリストの要素をクリックしたとき、私は「current_nodeのが定義されていない」というエラーが出る私のメニュー項目のすべての作品をクリックしますけど。子をクリックすると、ルート変数が見つからないようです。
何が問題なのですか?これを解決するにはどうすればよいですか?
敬具、[閉鎖](http://jibbering.com/faq/notes/closures/)の代わりに新しいFunction'、例えば 'の'aElement.onclick = function(イベント){changePage(index)};'。それは問題があなたがここに示すコードにあるとは思わないと言いました。 –
私はクロージャーに変更しました。もっとよく見えました。私も自分の問題を発見した、私は間違ったIDを書いたので、私の関数はそれが前にクラッシュしたので、current_nodeを見つけることができませんでした。 –
http://jquery.com/一見の価値があるかもしれません。 – NimChimpsky