I am trying to add a drop down menu to my d3 visualization. The problem is that the eventlistener does not get invoked on selecting any of the options. Also, how can I access the value of the option selected? Following is a snippet of my code..
d3.text("uniqueTeams.php",function(json){
var dd=JSON.parse(json);
var b= d3.select("#s4").select("#shru");
var u=b.append("select");
var t=u.selectAll("option").data(dd).enter().append("option")
.attr("value",function(d){return d.teamShotID;})
.text(function(d){return d3.select(this).node().__data__.teamShotID;});
t.on("change",change);
});
function change(value)
{
console.log("team",value);
}
change();
Thankx
You need to add the
.on("change")to theselectelement, not theoptionelements.The currently selected
optionindex is kept in a property calledselectedIndexon theselectelement. Selections are arrays, so elements can be accessed directly (e.g.,selection[0][0]). Eachoptionelement will have data bound to it, stored in a property called__data__:Edit: For readability and hopefully to help you understand the code above, I’d like to also include this alternative syntax: