来自PHP文件的我的数组如下所示:
[
{"lat":"4.174475","lon":"73.509564","datetime":"2012-11-23 16:41:40"},
{"lat":"5.17","lon":"73.50633754680894","datetime":"2012-11-23 05:00:00"},
{"lat":"6.17","lon":"73.50633754680894","datetime":"2012-11-01 00:00:00"}
]
当我点击链接#Three时,它应该使用threeClick()
函数生成3个标记。这是功能。
function threeClick () {
$.getJSON('json.search.php?idcard=<?php echo $idcardno; ?>&limit=3', function(data) {
var location;
$.each(data, function (key, val) {
addMarker(val.lat,val.lon);
});
}
添加标记功能如下(来自:Plotting LatLng coordinates from Json Array on Google Map --- the markers all stack up in the same location)
function addMarker(lat,lng) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(lat,lng),
map: map,
icon: "images/mapIcons/red-dot.png"
});
markersArray.push(marker);
}
我使用以下方式生成地图:
var map;
var markersArray = [];
function initMap() {
var latlng = new google.maps.LatLng(4.174475, 73.509564);
var myOptions = {
zoom: 16,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("mapcanvas"), myOptions);
}
有人可以建议我如何在点击链接时显示标记吗?这段代码有什么问题?
答案 0 :(得分:1)
你说你用过这个:
<a id="Three" onclick="threeClick">three</a>
问题是threeClick
本身并没有实际调用该函数。它只是引用它。您需要括号来调用它,如下所示:
<a id="Three" onclick="threeClick()">three</a>
但是使用jQuery附加处理程序会更好。所以设置你的html如下:
<a id="Three" href="#">three</a>
然后将其添加到您的javascript:
$('#Three').click(function() {
threeClick();
return false;
});
请注意,这里的return false
是为了防止发生'#'点击默认操作(设置网址哈希)。