Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建D3饼图的用户输入_Javascript_Jquery_D3.js - Fatal编程技术网

Javascript 创建D3饼图的用户输入

Javascript 创建D3饼图的用户输入,javascript,jquery,d3.js,Javascript,Jquery,D3.js,我正在尝试使用d3pie.js用户输入值创建饼图。下面是我的代码,它是功能性的,但在点击按钮时会接受随机数 但我不想从用户输入字段中获取新的段值。我尝试将jquery函数分配给一个变量,然后将该变量分配给下面的值,但没有成功。我还尝试直接定义Jquery函数来定义值 尝试1(无效): var a = $("#first").val(); var num = 4; $("#addData").on("click", function() { adata.push({ label: num.

我正在尝试使用d3pie.js用户输入值创建饼图。下面是我的代码,它是功能性的,但在点击按钮时会接受随机数

但我不想从用户输入字段中获取新的段值。我尝试将jquery函数分配给一个变量,然后将该变量分配给下面的值,但没有成功。我还尝试直接定义Jquery函数来定义值

尝试1(无效):

var a = $("#first").val();
var num = 4;

$("#addData").on("click", function() {

adata.push({
  label: num.toString(),
  value: a
});

pie.updateProp("data.content", adata);
num++;
adata.push({
label: num.toString(),
value: $("#first").val()
});
尝试2(无效):

var a = $("#first").val();
var num = 4;

$("#addData").on("click", function() {

adata.push({
  label: num.toString(),
  value: a
});

pie.updateProp("data.content", adata);
num++;
adata.push({
label: num.toString(),
value: $("#first").val()
});
下面是我的工作代码,非常感谢大家在这方面的一些意见

var adata = [
        {
            "label": "JavaScript",
            "value": 5,         
        },
        {
            "label": "Ruby",
            "value": 3,             
        },
        {
            "label": "Java",
            "value": 2,             
        }   
    ];
--------------------
"data": {
    "sortOrder": "value-desc",
    "content": adata
--------------------
var num = 4;
$("#addData").on("click", function() {
adata.push({
  label: num.toString(),
  value: Math.floor(Math.random() * 10) + 1
});
pie.updateProp("data.content", adata);
num++;

--------------------
<input type="text" class="form-control" id="first">
<button type="button" class="btn btn-default" id="addData">Add Value</button>
var adata=[
{
“标签”:“JavaScript”,
“价值”:5,
},
{
“标签”:“红宝石”,
“价值”:3,
},
{
“标签”:“Java”,
“价值”:2,
}   
];
--------------------
“数据”:{
“排序器”:“值描述”,
“内容”:adata
--------------------
var-num=4;
$(“#添加数据”)。在(“单击”,函数()上){
阿达塔推({
标签:num.toString(),
值:Math.floor(Math.random()*10)+1
});
pie.updateProp(“data.content”,adata);
num++;
--------------------
增值

问题是因为在
值中传递字符串,它需要一个数字

在代码中

adata.push({
  label: num.toString(),
  value: a //incorrect it has to be a number.
});
需要做

 adata.push({
  label: num.toString(),
  value: +$("#first").val() //make it a number so + is appended.
});

工作代码

@Cyril,它实际上会自动刷新,就像使用Math.random时一样。我一直在这里将输入值指定给对象“value”。不过谢谢您的输入。