2012-01-27 7 views
0

これで、アコーディオンにJSONデータを設定しています。私がこれを行う方法を知っている唯一の方法は、divにHTMLを追加することです。ここに私のコードは次のとおりです。アコーディオン内に追加されたHTML項目でjavascriptを実行する

$.getJSON('/industry_tree.json', function(data) { 
    $("#accordion").accordion(); 
    for (i in data) { 
     acc_html += '<h3><a href="#">'+data[i].data+'</a></h3>'; 
     acc_html += '<div>'; 
     for (j in data[i].children) { 
      acc_html += '<li>'+data[i].children[j].data+'</li>';       
     } 
     acc_html += '</div>'; 
    }     
    console.log(acc_html); 
    $("#accordion").append(acc_html); 
    $("#accordion").accordion("destroy").accordion({autoHeight: false});   
}); 

私は<li>は、それがクリックされますJS毎回のいくつかの並べ替えを実行したいです。問題は、私がappendを介して追加している場合、どうすればいいのか分かりません。

答えて

2

追加すると、ページ上の他の操作と同じように操作できます。例えば

$("#accordion li").click(function(){...}); 
+0

クール!これは私のために私を取得しています。システムはどのように私がクリックしているかをどのように知っていますか?各商品を一意に識別できる方法はありますか? – John

+0

クリック機能では、クリックされた個々の「li」を参照するために 'this'を使用することができます。 –

+0

それは働いている!ありがとう!私はすべてのオブジェクトにIDを与え、this.idを使用して終了しました。 – John

1

は、それを使用してみてください:

$("#accordion li").click(function(){ 
    console.log($(this)) 
    //$(this) is your element 
});