1

私のコード

HTML

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js"></script>

<div id="map" style="width:500px; height:500px"></div>

<div id="mappa-infowindow" style="display:none;">
    <div style="background-color:#ffffff;">            
        <span style="cursor:pointer;" class="pulsanteProva">Click</span>
    </div>            
</div>

jQuery / Maps

$("body").on("click", ".pulsanteProva", function () {
    alert("clicked");
});

$(window).load(function () {
    var templateFinestra = $('#mappa-infowindow');
    var infoWindowOptions = {
        content: templateFinestra.html(),
        pixelOffset: new google.maps.Size(-87, -88)
    };
    var infowindow = new InfoBox(infoWindowOptions);    

    var latlng = new google.maps.LatLng(42.745334,12.738430);
    var options = { zoom: 12, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
    var map = new google.maps.Map(document.getElementById('map'), options);
    var marker = new google.maps.Marker({ position: latlng, map: map, title: 'Example' });   
    
    markerClick = function () {
        infowindow.setContent(templateFinestra.html());
        infowindow.open(map, marker);
    };    
    
    google.maps.event.addListener(marker, 'click', markerClick);
});

スパンよりもマーカーをクリックするとClick、アラートが表示される必要がありますが、実際には機能しません。ハンドラーが接続されていないようですか?なんで?

on関数内に配置してマップの親からアタッチすることもできませんhttp://jsfiddle.net/arEWv/9/

4

1 に答える 1

1

Google マップは、レンダリング前に埋め込み要素に関連付けられたすべてのイベントを削除するようです。

jsfiddleが動作していることを確認してください

markerClick = function () {
        infowindow.setContent(templateFinestra.html());
        infowindow.open(map, marker);
        setTimeout(function(){$('.pulsanteProva').click(function(){alert('clicked');});},500);
    };   

そして、これはjsfiddleが機能していません

markerClick = function () {
        infowindow.setContent(templateFinestra.html());
        infowindow.open(map, marker);
       $('.pulsanteProva').click(function(){alert('clicked');});
};   
于 2012-10-23T15:38:41.400 に答える