2016-04-08 14 views
-1

Eski infowindow'u kapatmaya çalışıyorum ve yeni infowindow'u açmaya çalışıyorum (veya bu içeriğin içeriğini değiştiriyorum) ama işe yaramayacağım. Google’ı deniyorum. Şimdi deneyecek olursam Google Chrome tarayıcısı Geliştirici aracının Konsolu "Uncaught TypeError: özelliği okunamıyor" özelliğini "tanımsız" olarak değiştirir ".Google haritalar api açık tıkırdağı tıklamasıyla içeri yeni tıklatınız

<script> 
var map; 
var marker; 
var markerInfoWindow; 

function intMap() { 

    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 10, 
     center: new google.maps.LatLng(60.3000216, 24.944929), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    // Create a new marker 
    var marker = new google.maps.Marker({ draggable: true, icon: 'images/new_marker.png' }); 
    var markerInfoWindow = new google.maps.InfoWindow(); 

    google.maps.event.addListener(map, 'click', function(event) { 
     marker.setPosition(event.latLng); 
     marker.setMap(map); 

     var contentString = "<a href='#' onclick='openNew();'>Click here to open new infowindow!</a>"; 
     var markerInfoWindow = new google.maps.InfoWindow({ 
      content: contentString 
     });    
     markerInfoWindow.open(map, marker); 
     marker.addListener('click', function() { 
      markerInfoWindow.open(map, marker); 
     }); 
    }); 
}   
    google.maps.event.addDomListener(window, "load", intMap); 

    function openNew() { 
     markerInfoWindow.close(); 
     var contentString = "Open this infowind when clicked link"; 
     var markerInfoWindowNew = new google.maps.InfoWindow({ 
      content: contentString 
     }); 
    } 
</script> 

cevap

1

Sen değişken markerInfoWindow kapsamı ile sorun var - kodunuzda yeni yerel oluşturmak dış bir

var map; 
var marker; 
var markerInfoWindow; 

function intMap() { 

    map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 10, 
     center: new google.maps.LatLng(60.3000216, 24.944929), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    // Create a new marker 
    marker = new google.maps.Marker({ 
     draggable: true, 
     icon: 'images/new_marker.png' 
    }); 
    markerInfoWindow = new google.maps.InfoWindow(); 

    google.maps.event.addListener(map, 'click', function(event) { 
     marker.setPosition(event.latLng); 
     marker.setMap(map); 

     var contentString = "<a href='#' onclick='openNew();'>Click here to open new infowindow!</a>"; 
     markerInfoWindow = new google.maps.InfoWindow({ 
      content: contentString 
     }); 
     markerInfoWindow.open(map, marker); 
     marker.addListener('click', function() { 
      markerInfoWindow.open(map, marker); 
     }); 
    }); 
} 
google.maps.event.addDomListener(window, "load", intMap); 

function openNew() { 
    markerInfoWindow.close(); 
    var contentString = "Open this infowind when clicked link"; 
    markerInfoWindow = new google.maps.InfoWindow({ 
     content: contentString 
    }); 
    markerInfoWindow.open(map, marker); 
} 
+0

Teşekkür gizler hangi! Şimdi bu 'markerInfoWindow' kapatabilirim ama yeni 'markerInfoWindowNew' infowindow açık değil. – user2885442

+0

@ user2885442 checkout güncellenen kod. 1) bilgi penceresini açmayı unuttun: '' 'markerInfoWindow.open (harita, işaretleyici);' ''; 2) tekrar, '' '' '' '' '' 'intMap'' içinde gölgelenmiştir. Bu nedenle, dış '' '' '' '' '' '' '' '' '' vakası her zaman '' null''' idi. – ruX

İlgili konular