谷歌地图infoWindow。关闭infoWindow后,不会保留通过ajax更改的内容

时间:2017-06-21 08:38:38

标签: javascript jquery google-maps

我在Google地图上显示了许多标记。标记从dB加载并添加到数组markers

var markers = [
{
    "ID": "99",
    "title": "Ut vestibulum tincidunt consectetur vestibulum.",
    "coords": "45.6496292, 13.7740742",
},
{
    "ID": "259",
    "title": "Faucibus tempus vivamus scelerisque vestibulum.",
    "coords": "45.6455002, 13.7595193",
},
{
    "ID": "261",
    "title": "Taciti ante scelerisque consequat inceptos nunc.",
    "coords": "45.6455002, 13.7595193",
}
];

点击标记 infoWindow 会正确弹出:

gooole.maps.event.addListener(marker, 'click', function() {
    infowindow.setContent(this.content);
    infowindow.open(map, this);
}); 

infoWindow 里面有一个链接,当点击时弹出一个boostrap对话框,允许编辑 infoWindow 的内容。该对话框的字段通过Ajax(jQuery)填充。更改字段并保存更改后,对话框将关闭,更改后的数据会立即显示在 infoWindow 中,同时保持打开状态。

到目前为止一切正常。

我没有成功的问题是,当我关闭“编辑过的”时, infoWindow 或者我点击其他标记,以便'编辑' infoWindow 关闭,然后我重新打开之前编辑过的' infoWindow 未显示更改。

我认为我可以简单地更改markers数组中的值,例如:

setTitle(id, "This is the new title");

function setTitle(id, newtitle) 
    for (var i = 0; i < markers.length; i++) {
        if (markers[i]["ID"] === id) {
            markers[i]["title"] = newtitle;
            return;
        }
    }
}

看到它&#39;反应&#39;在 infoWindow 中使用dinamically,但事实并非如此。 markers数组内置于index.php,而地图和对话框则分别通过ajax加载(map.phpedit.php)。我将markers放在index.php中,因此我确定它可以访问,事实上就是例如

 console.log(markers[13]["title"]);

正确显示任何更改,但此更改未被保留&#39;要在&#39;编辑的&#39;中显示 infoWindow

0 个答案:

没有答案