当我点击使用D3库创建的饼图切片时,我试图传递一个参数,并将以下代码发送到Filemaker数据库脚本。数据集采用对象数组格式。
var dataset = [{key: 1, amt: 5}, {key: 2, amt: 10}, {key: 3, amt: 20}];
我可以用常量代替d.amt并将常量传递给Filemaker。 我最初使用数组格式绘制饼图,onclick使用d.value工作正常。
d.amt是否使用正确的语法来传递对象数组格式的参数?
var arcs = svg.selectAll("g.arc")
.data(pie(dataset))
.enter()
.append("g")
.attr("class", "arc")
.attr("transform", "translate(" + outerRadius + "," + outerRadius + ")")
.attr("onclick", function(d, i){
return "location.href='" + script + "¶m=" + d.amt + "'";
});
添加饼图的.on("click", function(d, i) {..
没有绘制。对于location.href =
"script¶m=" + d.amt;
我需要'" + script + "¶m=" + d.amt + "'";
,以防它有所作为。
这就是我所拥有的;
...
.attr("transform", "translate(" + outerRadius + "," + outerRadius + ")")
.on("click", function(d, i) {
location.href ="script¶m=" + d.amt;
};
答案 0 :(得分:0)
d3的on
功能可以更好地实现目的:
svg.selectAll("g.arc)
...
.on("click", function(d, i) {
location.href = script + "¶m=" + d.amt;
});
attr
在创建元素时静态设置目标。点击发生时on
动态确定目标。
除此之外,d.amt
是正确的,我也希望您的attr
变体能够正常运作。