Ich habe eine Karte der USA mit auswählbaren Landkreisen, die bei einem Klick ihren Hintergrund auf rot ändern. Was ich möchte ist, wenn der Benutzer auf einen anderen Kreis klickt, wählt er den aktuellen Kreis aus und wählt dann nur den neuen Kreis aus. Gerade jetzt, wenn man auf die Kreisklasse klickt, ändert sich die Klasse, die einen roten Hintergrund bekommt, aber wenn man auf einen anderen Kreis klickt, dann sind beide rot. HierWie man eine Klasse ablöst, wenn ich mit JavaScript eine andere Klasse anklicke
ist der Code, wo ich die Karte und ändern Klassen ziehen, wenn darauf geklickt:
//DRAW MAP
d3.json("js/map.json", function(error, mapData){
if (error) throw error;
//draw counties
edit.map.append("g")
.selectAll("path")
.data(topojson.feature(mapData, mapData.objects.counties).features)
.enter().append("path")
.attr("class", "counties")
.attr("d", edit.path)
.on("click", function(d){
sFips = d.properties.STATEFP;
cFips = d.properties.COUNTYFP;
//display values in text boxes
$("#locationCountySelect").val(cFips);
$("#locationStateSelect").val(sFips);
//change clicked county class name
if (this.className.baseVal == "counties") {
this.className.baseVal = "selectedCounty";
//send new county to db
} else {
this.className.baseVal = "counties";
}
});
});
Wieder, wie kann ich nur eine Grafschaft zu einem Zeitpunkt ausgewählt haben?
Ehrfürchtig, danke! Der erste funktionierte wie ein Zauber. Der zweite hat nicht funktioniert. – lostInTheTetons
Bitte geben Sie die zweite ein anderes versuchen. Ich habe es bearbeitet, um beim ersten Klicken einen Nullwert zu vermeiden. Ich würde die zweite Lösung bevorzugen, da sie der ersten überlegen ist. – altocumulus
2. funktioniert auch wie ein Charme, danke! – lostInTheTetons