我的第一個問題在這裏。我通過從外部php文件中獲取json對象的數據來構建Google地圖,在那裏獲取餐館列表(在此情況下爲4家餐館)及其信息,並且通過此信息在地圖上構建標記然後顯示的餐館列表,當我點擊餐廳的名字應該顯示它在地圖上,從標記,而這種功能無法正常工作,這裏是代碼:在谷歌地圖JavaScript的點擊功能不起作用
$(document).ready(function(){
$.ajax({
type:"GET",
url:"proxy.php",
dataType:"json",
contentType:"text/json",
success:function(res){
$.post('getinfo.php', {data: res}, function(data){
response = jQuery.parseJSON(data);
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("google_map_div"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(0,0),0);
var side_bar_html = "";
var gmarkers = [];
var htmls = [];
var i = 0;
function createMarker(point,name,html) {
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
gmarkers[i] = marker;
htmls[i] = html;
side_bar_html += '<a href="javascript:openInsideMap(' + i + ')">' + name + '</a><br>';
return marker;
//
}
function openInsideMap(i){
alert("WORKING" + i);
gmarkers[i].openInfoWindowHtml(htmls[i]);
}
var bounds = new GLatLngBounds();
for(i=0; i<response.length;i++){
var j = i + 1;
// obtain the attribues of each marker
var lat = parseFloat(response[i].langt);
var lng = parseFloat(response[i].longt);
var point = new GLatLng(lat,lng);
var html = response[i].localName + ": " + response[i].localAddress;
if(response[i].tapaName == ''){
var label = j + ". " + response[i].localName + " - " + response[i].localAddress;
}else{
var label = j + ". " + response[i].localName + " - " + response[i].localAddress + "<br /> " + response[i].tapaName;
}
// create the marker
var marker = createMarker(point,label,html);
map.addOverlay(marker);
// ==== Each time a point is found, extent the bounds ato include it =====
bounds.extend(point);
}
document.getElementById("side_bar").innerHTML = side_bar_html;
map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter());
}
});
}
});
當我瀏覽它Mozilla或GCHROME,它說,功能openInsideMap(我){沒有定義 openInsideMap沒有定義
非常感謝你的幫助, 和鏈接檢查它的是:01
function(data){
response = jQuery.parseJSON(data);
您可以通過使用一個事件監聽器,而不是一個javascript URL的解決這個問題:http://www.gsi.dec.usc.es/santiagoetapas/testStage.php
實際上,這是我正在使用的谷歌地圖數據: 哪些函數(數據)。 我試圖把函數openInsideMap(i)放在ajax函數之外,但它仍然說函數undefined。 而且,我需要'我'知道我正在推送哪個餐廳,以便將它傳遞給地圖標記 – Jasur 2010-06-19 19:37:38
現在側欄已經消失,它不顯示任何內容,因爲我放 newLink.innerText = name ; var newLink = document.createElement(「a」); – Jasur 2010-06-19 20:28:57
有沒有任何方法讓.ajax和$ .post,因爲我把緯度,登錄自己,而不是從JSON文件,它正在工作,但如果我只舉例$(document).ready()他們,它不起作用... – Jasur 2010-06-19 23:09:54