infoWindowにはクリックイベントはありません。もう少し難しいです。
- infowindow-objectのリスナーではなくDOMListenerが必要なため、infowindowのコンテンツとして要素(文字列ではない)を使用する必要があります。
- domready-firesの場合、infowindowを定義するこのコンテンツノードのアンカーにclick-DOMListenerを適用する必要があります
次のコードはあなたのためにこれを行います、これをあなたのページに追加してください:
google.maps.InfoWindowZ=function(opts){
var GM = google.maps,
GE = GM.event,
iw = new GM.InfoWindow(),
ce;
if(!GM.InfoWindowZZ){
GM.InfoWindowZZ=Number(GM.Marker.MAX_ZINDEX);
}
GE.addListener(iw,'content_changed',function(){
if(typeof this.getContent()=='string'){
var n=document.createElement('div');
n.innerHTML=this.getContent();
this.setContent(n);
return;
}
GE.addListener(this,'domready',
function(){
var _this=this;
_this.setZIndex(++GM.InfoWindowZZ);
if(ce){
GM.event.removeListener(ce);
}
ce=GE.addDomListener(this.getContent().parentNode
.parentNode.parentNode,'click',
function(){
_this.setZIndex(++GM.InfoWindowZZ);
});
})
});
if(opts)iw.setOptions(opts);
return iw;
}
あなたの代わりにgoogle.maps.InfoWindow()
今すぐ電話する必要がありますgoogle.maps.InfoWindowZ()
また、本物のインフォウィンドウを返しますが、前述のリスナーが適用されています。また、必要に応じてコンテンツからノードを作成します。
デモ: http: //jsfiddle.net/doktormolle/tRwnE/
visualRefreshの更新バージョン(クリックの代わりにマウスオーバーを使用)http://jsfiddle.net/doktormolle/uuLBb/