Die Verwendung von addDomListener mit Google Maps funktioniert nicht

Ich habe Marker für eine Googlemap erstellt, indem ich eine Datenbank in PHP abgefragt und die Daten dann an eine addMarker-Funktion gesendet habe.

Für jeden Marker gibt es 0 bis eine unbekannte Anzahl von "Verstößen". Ich habe die Verstöße für jeden Marker in ein Array (als Verstöße bezeichnet) eingefügt und es auch an die Funktion addMarker gesendet.

Ich möchte für jeden Verstoß einen Link haben. Wenn Sie auf den Link klicken, werden die Details (eine Tabelle) für diesen Verstoß angezeigt.

Die Tabelle wird anfangs angezeigt: keine. Wenn Sie jedoch auf den Link klicken, soll die Anzeige blockiert und der Link ausgeblendet werden.

Ich würde gerne jquery verwenden, um diese Aufgabe zu erledigen, aber ich habe Probleme, sie zu implementieren.

Ich habe versucht, addDomListener zu verwenden, aber es funktioniert einfach nicht bei mir - es bricht die Seite ohne eine klare Fehlermeldung. Kann mir jemand sagen, wie man addDomListener richtig benutzt, oder sollte ich etwas anderes benutzen?

function addMarker(point, name, violations, map) {
            var marker=new google.maps.Marker({
              position:point,
              icon:'circle.png'
              });

            marker.setMap(map);


            var markerhtml = "";
            markerhtml += "<div class='table-responsive'><table class='table-condensed'><tr><th colspan='2'>" + name + "</th></tr>";

            markerhtml += "</table>";
            vCount = violations.length/6; //6=number of fields per violation; vCount = number of violations
            if (violations.length > 0) {
                markerhtml += "<p><strong>Violation";
                if (violations.length > 6) {
                    markerhtml += "s"; //make it 'violationS' if there are more than one violation
                }
                markerhtml += "</strong></p>";
                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 += "<div class='desc' id='desc" + j + "'>" + vViolationDescription + "</div>";
                    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 += "<table id='tblViolation" + j + "' class='table-responsive table-condensed tblViolation'><tr class='nDesc'><td>Incident date:</td><td>" + vIncidentDate + "</td></tr>";
                    markerhtml += "<tr><td>Fine date:</td><td>" + vFineDate  + "</td></tr>";
                    markerhtml += "<tr><td>Fine amount:</td><td>" + vFineAmount;

                    markerhtml += "</td></tr>";
                    markerhtml += "<tr><td>Description:</td><td>" + vViolationDescription + "</td></tr>";
                    markerhtml += "<tr><td>Response:</td><td>" + vResponse + "</td></tr>";


                }
                markerhtml += "</table></div>";

            }



            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));
            });

Antworten auf die Frage(1)

Ihre Antwort auf die Frage