我做了一個應用程序,它使用knockoutjs從一個observableArray加載谷歌地圖和多個標記。每個標記也有相應的<li>
元素也從我的observableArray中提取。每個標記都有一個marker.addListener('click', function)
,它會拉起一個infowindow,最終會從外部api中拉出一些關於該位置的信息。我的問題是連接<li>
元素與其相應的標記。我想在<li>
元素上使用data-bind='click:'
,結果與點擊標記相同。製作數據綁定:點擊工作就像一個marker.addListener()
http://codepen.io/ntibbs/pen/ZbPPBm
我試着做一些像
this.marker.addListener('click', myFunction);
this.zoom = function(){
myFunction;
}.bind(this);
function myFunction() {
if (infowindow) {
infowindow.close();
};
contentString = '<div">'+
this.title + '</div>';
infowindow = new google.maps.InfoWindow({
content: contentString,
pixelOffset: new google.maps.Size(50, 0),
});
map.setZoom(9);
map.setCenter(this.getPosition());
infowindow.open(map, this);
google.maps.event.addListener(infowindow, 'closeclick', function() {
map.setZoom(7);
map.setCenter(mapOptions.center);
});
};
但正如我曾希望它不工作。任何關於我需要做什麼改變或者我的代碼出現問題的見解都將是一個巨大的幫助。