2

これは実際の問題ではないため、次のコードで同様の問題を解決する場合を除いて、この質問は無視してください。

動的に生成されたテーブルラインがクリックされたときに、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);
    }
});
4

1 に答える 1

1

jsFiddle私のデモであなたのコードが機能するのを見ることができるので、あなたの例を提供してください:http: //jsfiddle.net/c5s5t/1/

于 2012-09-25T13:02:28.353 に答える