高位图表增加/减少输入数据
Highcharts increasing/decreasing data from input
我试图通过拖动图表数据以及单击增加/减少按钮来启用图表数据更改。我的问题是我现在不知道如何将值链接到标签中的变量。
我得到pomY
变量的输入值:var pomY=Number($('#one').val());
我现在只测试第一列。
这是我的例子:
HTML:
<body>
<div id="container" style="width:100%; height:400px;"></div>
<div id="drag"></div>
<div id="drop"></div>
<form method="post" action="">
<div>
<label for="name">one</label>
<input type="text" name="one" id="one" value="">
<div id="plus" class="inc button">+</div>
<div id="minus" class="inc button">-</div>
</div>
</form>
</body>
JS:
$(function () {
$('#container').highcharts({
chart: {
renderTo: 'container',
animate: false,
},
title: {
text: 'test'
},
xAxis: {
categories: ['1', '2', '3', '4', '5']
},
tooltip: {
yDecimals: 2
},
plotOptions: {
series: {
allowPointSelect: false,
point: {
events: {
click: function () {
switch (this.category) {
case '1':
$('#one').val(this.y);
break;
case '2':
$('#two').val(this.y);
break;
case '3':
$('#three').val(this.y);
break;
case '4':
$('#four').val(this.y);
break;
default:
$('#five').val(this.y);
break;
}
},
drag: function (e) {
$('#drag').html(
'Dragging <b>' + this.series.name + '</b>, <b>' + this.category + '</b> to <b>' + Highcharts.numberFormat(e.y, 2) + '</b>');
},
drop: function () {
$('#drop').html(
'In <b>' + this.series.name + '</b>, <b>' + this.category + '</b> was set to <b>' + Highcharts.numberFormat(this.y, 2) + '</b>');
}
}
}
}
},
series: [{
name: 'test',
data: [30, 50, 74, 90, 123],
draggableY: true,
dragMinY: 0,
dragMaxY: 200,
type: 'column',
minPointLength: 2
}]
});
var chart = $('#container').highcharts();
var pomY = Number($('#one').val());
$('#plus').click(function () {
pomY += 2;
chart.series[0].data[0].update(pomY);
$('#one').val(pomY);
});
$('#minus').click(function () {
pomY -= 2;
chart.series[0].data[0].update(pomY);
$('#one').val(pomY);
});
});
有什么建议吗?
我希望我理解得对:)
基本上,你的声明不在正确的位置。当您用它的当前值初始化pomY
时,拖动后没有考虑它的值。在事件处理程序中移动声明时,该值是准确的,并且与图表实际值相对应。另一个问题是使用初始数据处理按钮。因此,您应该将数据"加载"到输入中(这可以通过多种方式实现)。
为了"奖金",我用jQuery和JS做了一些技巧来概括你的代码。我想你必须在那里重写一些代码。
$(function () {
$('#container').highcharts({
chart: {
renderTo: 'container',
animate: false,
},
title: {
text: 'test'
},
xAxis: {
categories: ['1', '2', '3', '4', '5']
},
tooltip: {
yDecimals: 2
},
plotOptions: {
series: {
allowPointSelect: false,
point: {
events: {
click: function () {
switch (this.category) {
case '1':
$('#one').val(this.y);
break;
case '2':
$('#two').val(this.y);
break;
case '3':
$('#three').val(this.y);
break;
case '4':
$('#four').val(this.y);
break;
default:
$('#five').val(this.y);
break;
}
},
drag: function (e) {
$('#drag').html(
'Dragging <b>' + this.series.name + '</b>, <b>' + this.category + '</b> to <b>' + Highcharts.numberFormat(e.y, 2) + '</b>');
},
drop: function () {
$('#drop').html(
'In <b>' + this.series.name + '</b>, <b>' + this.category + '</b> was set to <b>' + Highcharts.numberFormat(this.y, 2) + '</b>');
}
}
}
}
},
series: [{
name: 'test',
data: [30, 50, 74, 90, 123],
draggableY: true,
dragMinY: 0,
dragMaxY: 200,
type: 'column',
minPointLength: 2
}]
});
var chart = $('#container').highcharts();
var bars = ["one","two","three","four","five"];
var dataLoader = function(){
$.each(chart.series[0].data, function(){
$("#"+bars[this.category-1]+"").val(this.y);
});
}();
$('.inc,.dec').click(function () {
var valueInput = $($(this).siblings("input")[0]);
var barNumber = bars.indexOf(valueInput.attr("id"));
var diff = $(this)[0].className.indexOf("inc") != -1 ? 2 : -2;
var pomY = Number(valueInput.val())+diff;
chart.series[0].data[barNumber].update(pomY);
valueInput.val(pomY)
});});
正如您所看到的,我使用了一个函数,该函数获取所有初始数据并用它更新相应的输入。然后,我为每个点击事件绑定了点击事件,并命令它们在事件触发时更新正确的输入。
http://jsfiddle.net/kja0tf7t/3/
相关文章:
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 如何读取表单中的输入数据
- 从MySQL数据库中获取输入数据需要两次页面刷新
- 从html表中的输入数据创建图表
- 如何使用输入数据加载新的extjs图表
- Node.js输入数据事件停止
- 如何将输入数据(许多数据)添加到同一页面的下表中
- 如何使用asp.net中的Web服务从clintside输入数据
- AngularJS自定义过滤器调用了两次,并在第二次调用时删除输入数据
- Javascript:在表单中输入数据时,提交按钮不处于活动状态
- 在动态输入数据的下拉菜单中设置默认值
- d3.js强制可折叠图-输入数据是对象数组
- 如何使用HTML表显示存储在数组中的用户输入数据
- 如何使用带按钮的表链接到HTML页面,并让它使用AngularJS从Firebase输入数据
- GAS - 等到用户输入数据后,功能才会继续
- 为什么它说输入数据数组的格式不正确 jqchart.
- 将输入数据保存到全局变量
- 当输入ng-model是ngRepeat变量时,如何从输入数据中获取
- 触发 html5 输入数据列表下拉列表显示
- 如何在 AJAX 请求 (Rails) 之间保留表单输入数据