Googleマップとイベント処理/リスニングに関する質問があります。Googleマップ内の要素にイベントハンドラを添付する情報バブル
jQueryとGoogleマップv3を使用して、ユーザーがマーカーをクリックしたときにinfobubbleを開くイベントマーカーとマーカーを配置できます。私は何をしたいのですか(しかし、これまでには分かりませんでした)、情報バブルのコンテンツに別のイベントハンドラを追加しています。たとえば、ユーザーがマップマーカーをクリックして情報泡(その部分が機能する)を開いた場合、infobubble内の何かをクリックすると、何か他のことが行われます。私はあなたがDOM Element
ない要素に"click"
イベントを追加しようとしている任意のヘルプ
function addMarker(data) {
var myLatlng = new google.maps.LatLng(data.Latitude, data.Longitude);
var title = data.title? data.title: "";
var icon = $('#siteUrl').val() + 'img/locate.png';
var bubbleContentString = "<span class=\"bubble-details-button\">Get Details about " + title+ "</span>";
myInfoBubble = new InfoBubble({
content: bubbleContentString,
hideCloseButton: true,
backgroundColor: '#004475',
borderColor: '#004475'
});
var myMarker = new google.maps.Marker({
position: myLatlng,
map: map,
title: title,
icon: icon
});
addListenerToMarker(myMarker, myInfoBubble);
markerSet.push(myMarker, myInfoBubble);
}
function addListenerToMarker(marker, bubble){
console.log($(bubble.getContent()).find('.bubble-details-button')[0]);
google.maps.event.addListener(marker, 'click', function() {
if (!bubble.isOpen()) {
google.maps.event.addListenerOnce(bubble, 'domready', function(){
console.log($(bubble.getContent()).find('.bubble-details-button')[0]);
google.maps.event.addDomListener($(bubble.getContent()).find('.bubble-details-button')[0], 'click', function(){
alert("hi");
});
});
bubble.open(map, marker);
}
});
}
しかし、私はあなたの提案を実装しようとしたと私は成功していません。 私はあなたの提案をコピーして貼り付けましたが、バブル自体は開いていないので、バブルの中身をクリックすることさえできません。 –
申し訳ありませんが、それは間違いありません。元のコードにはタイプミスがありました。私はそのタイプミスを修正しました。google.maps.event.addListener(マーカー、 'クリック'、function(){ マーカーが読み込まれている必要があります、mymarker。 Microsoft JScriptランタイムエラー: 'addEventListener'プロパティの値を取得できません:オブジェクトがnullまたは未定義です –
残念ですが、遅れて返信してください。あなたはマップのマーカーをクリックするとエラーが発生します。それはDOM要素なのですか? – Engineer