1

我有一个标准的谷歌地图实现,旁边的表格中有一个结果列表。

每次单击表中的一行时,我都想打开一个信息窗口。什么是正确的实现?这是我的开始:

JS

$('table').on('click', 'tr', function () {
infowindow.open(map,marker);
});
4

1 回答 1

1

当需要填充(或生成)表格以及其中的元素(例如,tbody、tr、th/td 等)时,我强烈建议以 DOM 方式构建它们。

假设返回的结果是一个简单的一维数组,在 jQuery AJAX 调用的第三个参数(success,即回调函数)中:

$.get(
    url,
    data,
    function (data) {
        if (data) {
            var table = document.createElement("table");
            for (var i in data) {
                var tr = document.createElement("tr"),
                th = document.createElement("th"),
                td = document.createElement("td");
                th.innerHTML = i;
                td.innerHTML = data[i].key;
                tr.appendChild(th);
                tr.appendChild(td);
                table.appendChild(tr);
                document.getElementsByTagName("body").item(0).appendChild(table);
                /**
                 * here comes what you asked for
                 */
                $(tr).click(function () {
                    // do whatever you gotta do w/ it
                });
            }
        }
    },
    "json"
);

注意:使用速记方法显示的示例!

于 2013-08-17T17:24:01.050 回答