これは実際の問題ではないため、次のコードで同様の問題を解決する場合を除いて、この質問は無視してください。
動的に生成されたテーブルラインがクリックされたときに、Googleマップにポリゴンを描画したかったのです。データはそのdomに正常に保存されたようですが、$。each()関数の外部で再度読み取ることはできません。
$.getJSON(url, function(json) {
$.each(json, function(index) {
var id = "tableLine_"+index;
tbody.append(
'<tr id='+id+' class="tableLine">'+
'<td>'+ this.status+ '</td>'+
'<td>'+ this.name+'</td>'+
'<td>'+ this.city+'</td>'+
'<td>'+ this.street+'</td>'+
'<td>'+ this.language+'</td>'+
'<td>'+ this.distance+'</td>'+
'</tr>'
);
//save data to the specific 'tr'
$("tr#"+id).data("polygon",this.polygon);
//this proved that the data was saved
alert($("tr#"+id).data("polygon"));
});
$("table").tablesorter({
sortLocaleCompare: true,
widgets: ['zebra']
}).tablesorterPager({
container: $(".pager"),
size: 15
});
});
ポリゴン:
"polygon":[{"x":48.235752,"y":11.685345},{"x":48.21908,"y":11.686883}...]
クリックイベントをテーブル行にバインドする関数:
$('.tableLine').live('click', function (event){
var polygon = $(this).data("polygon");
if(polygon){
addPolygon(polygon);
}
});