如何在googlemaps信息窗口中检测按钮单击

Jez*_*z D 3 javascript jquery google-maps

使用Googlemaps V3

我试图在我的googlemap上的infoWindow中添加一个按钮。infoWindows和按钮按预期出现。我正在尝试捕获按钮的onclick事件。这是我到目前为止的内容:

var contentBtn = '<p><button id="marker'+numby+'" class="iwLink" href="#" >Done</button></p>';
        google.maps.event.addListener(marker, 'click', function() {
            infowindow.setContent(address+contentBtn);
            infowindow.open(map, this);
        });

        google.maps.event.addDomListener(contentBtn, 'click', function() {

          alert($(this).attr('id'));
        });
Run Code Online (Sandbox Code Playgroud)

infoWindow随同按钮一起出现。但是,我也在控制台日志中得到以下错误:

Uncaught TypeError:无法读取未定义的属性“ click”,
这似乎是由该行引起的google.maps.event.addDomListener(contentBtn, 'click', function()

geo*_*zip 5

在信息窗口完成渲染之前,按钮不会添加到DOM。直到infowindow domready事件触发后,您才能使用getElementById(或等效的jquery)找到它。

var contentBtn = '<p><button id="marker'+numby+'" class="iwLink" href="#" >Done</button></p>';
    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent(address+contentBtn);
        infowindow.open(map, this);
    });
    google.maps.event.addListener(infowindow, 'domready', function() {
      google.maps.event.addDomListener(contentBtn, 'click', function() {

        alert($(this).attr('id'));
      });
    });
Run Code Online (Sandbox Code Playgroud)