我有一个带有标记的谷歌地图。点击时每个标记显示一个infowindow。 infowindow内部是一个按钮,用于将一些数据添加到队列中。在第一次点击添加到队列按钮时,它会触发一次,点击第二个按钮它会触发两次,点击第三个按钮,然后触发三次,依此类推。谷歌地图Popover点击事件多次触发
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
$('.show-compare').popover('destroy');
infowindow.setContent('<div class="add-wrapper"><div class="show-compare" data-toggle="popover" data-placement="top" data-content="Add to compare basket">CLICK ME</div></div>);
infowindow.setOptions({maxWidth: 200});
infowindow.open(map, marker);
$('body').on("click", '.show-compare', function(e) {
e.preventDefault();
alert();//this fires x times, only should fire once per click!!
}
}) (marker, i));
}
帮助!谢谢:)
没了,还在射击多次。 – ryan
我认为Loc波纹管可能是正确的。将addListener函数外部的click监听器移动。我会让它更好一点。 $(document.ready)($('。show-compare')。click(function(e){e.preventDefault(); alert()}))'..并且把它移到一切之外 –
我不能移动它在外面,因为即时通讯在点击事件中使用标记数据。我需要访问我点击的标记 – ryan