2016-08-12 3 views
2

Ich benutze die d3.js-Bibliothek für JavaScript, um Teile der GUI für meine App zu erstellen. Ich habe einen Knopf gemacht, und es funktioniert wie eine Taste, aber ich will es eine Umschalttaste sein. Insbesondere möchte ich, dass Stile geändert werden, wenn darauf geklickt wird.Wie style ich eine Javascript-Taste mit d3?

Aus verschiedenen Gründen kann ich nicht die CSS im Stylesheet oder den Kopf berühren, ich kann nur JavaScript verwenden. Diese

ist, wie ich die Taste erschaffe (es gibt eine div mit id = ‚Menü‘ im doc):

var menuDiv = d3.select("#menu"); 
var menuButton = menuDiv.append("button") 
    .text("Button") 
    .attr("id", "buttonCentre") 
    .classed("Button", true) 
    .on('click', function(){ 
     //Do stuff 
    }); 

Wie kann ich neu Stil der Taste? Ich habe versucht, Dinge wie d3.select("#buttonCentre").style("background", "#ccc"); in die on_click-Funktion zu setzen, aber d3 erkennt nicht die Standard-CSS-Namen für das Styling, es verwendet andere Namen, und ich kann keine Liste oder eine Äquivalenzzuordnung finden.

+0

Ist es background? – ksav

+0

@ksav Ich habe es gerade versucht, ändert nicht das visuelle. – GreySage

Antwort

4

Verwenden Sie background-color anstelle von background.

var menuDiv = d3.select("body"); 
var menuButton = menuDiv.append("button") 
    .text("Button") 
    .attr("id", "buttonCentre") 
    .classed("button", true) 
    .on('click', function(){ 
     //here this is the button 
     d3.select(this).style("background-color", "#ccc") 
    }); 

Hier ist ein funktionierendes code

+3

wahrscheinlich eine gute Idee, 'd3.select (this) .style (" background-color "," #ccc ")' anstelle von target by id. – AndyPerlitch

+0

Yep definitiv .. – Cyril

+0

@Cyril Das hat funktioniert. Woher hast du das? Gibt es irgendwo eine Liste von d3 Styles? – GreySage