使用addDomListener与googlemaps无法正常工作
我通过在php中查询数据库,然后将数据发送到addMarker函数,为googlemap构建了标记。
对于每个标记,有0到未知数量的“违规”。 我将每个标记的违规放入一个数组(称为违规),并将其发送到addMarker函数。
我想做的是为每次违规提供一个链接。 单击该链接时,您会看到该违规的详细信息(表格)。
该表最初是display:none。 但是当你点击链接时,我希望显示屏变为阻止状态,链接消失。
我想用jquery来完成这个任务,但是我在实现它时遇到了麻烦。
我一直在尝试使用addDomListener,但它只是不适合我 – 它打破页面没有明确的错误消息。 谁能告诉我如何正确使用addDomListener,或者我应该使用别的东西?
function addMarker(point, name, violations, map) { var marker=new google.maps.Marker({ position:point, icon:'circle.png' }); marker.setMap(map); var markerhtml = ""; markerhtml += "" + name + " "; markerhtml += "
"; vCount = violations.length/6; //6=number of fields per violation; vCount = number of violations if (violations.length > 0) { markerhtml += "Violation"; if (violations.length > 6) { markerhtml += "s"; //make it 'violationS' if there are more than one violation } markerhtml += "
"; for (var j=0; j<vCount; j++) { vIncidentDate = violations[0+(j*6)]; vFineDate = violations[1+(j*6)]; vFineAmount = violations[2+(j*6)]; vLeadPermit = violations[3+(j*6)]; vViolationDescription = violations[4+(j*6)]; markerhtml += "" + vViolationDescription + ""; var thisDesc = document.getElementById("desc"+j); google.maps.event.addDomListener($("#thisDesc")[0], 'click', function(){ $(thisDesc).fadeOut(); $('#tblViolations'+j).fadeIn('slow'); }); vResponse = violations[5+(j*6)]; markerhtml += "Incident date: " + vIncidentDate + " "; markerhtml += "Fine date: " + vFineDate + " "; markerhtml += "Fine amount: " + vFineAmount; markerhtml += " "; markerhtml += "Description: " + vViolationDescription + " "; markerhtml += "Response: " + vResponse + " "; } markerhtml += "
"; } google.maps.event.addListener(marker, 'click', function() { currentCenter=map.getCenter(); infowindow.setContent(markerhtml); infowindow.setPosition(point); infowindow.open(map); }); google.maps.event.addListener(infowindow, 'closeclick', function() { map.setCenter(new google.maps.LatLng(41.0342375, -77.3066405)); });
看起来是$(“#thisDesc”)[0]在infowindow中寻找元素的问题。 这将不存在于DOM中,并且可以在infowindow’domready’事件触发之后找到。 将您的JQuery代码放在infowindows’domready’事件上运行的函数中。
google.maps.event.addListener(infowindow, 'domready', function() { // code here });