2016-01-07 80 views
-1

該代碼應該添加一個單擊事件,其中一個infowindow用PHP頁面中的數據在標記上打開,並且除了第一個infowindow打開空白在h1中說新聞),之後我打開的其他每個infowindow都包含最後一個標記的內容。任何人都可以告訴我如何解決它?

//broken part 
marker.addListener('click', function() { 
    $.getJSON('articles.php/GET?geo='+ marker.title) 
    .done(function(data, textStatus, jqXHR) { 
     $.each(data, function() { 
      contentString=contentString + '<li><a href=' + data[counter].link + '>' +data[counter].title + '</a></li>' ; 
      counter++; 
     });   
    }); 

    contentString=contentString + '</ul></div>' ; 
    var infowindow= new google.maps.InfoWindow({ 
     content: contentString 
    }); 

    infowindow.open(map, marker); 
    counter=0 ; 
    contentString='<div align="center"><h1>news</h1><br></div><div align="left" colour="blue"><ul>'; 
}); 

回答

0

$ .getJSON是異步的,你需要使用它的回調函數,何時/何地它是用(.done函數內)內的數據。

marker.addListener('click', function() { 
    $.getJSON('articles.php/GET?geo='+ marker.title) 
    .done(function(data, textStatus, jqXHR) { 
     $.each(data, function() { 
      contentString=contentString + '<li><a href=' + data[counter].link + '>' +data[counter].title + '</a></li>' ; 
      counter++; 
     });   
     contentString=contentString + '</ul></div>' ; 
     var infowindow= new google.maps.InfoWindow({ 
      content: contentString 
     }); 

     infowindow.open(map, marker); 
     counter=0 ; 
     contentString='<div align="center"><h1>news</h1><br></div><div align="left" colour="blue"><ul>'; 

    }); 
}); 
+0

很多thx的,這就是我如何初始化它,但它不斷給我在頁面上的錯誤,我想我只是有一些語法問題cuz工作正常。 –