我是jqCharts的新手。下面是数据突出显示事件的代码。鼠标悬停时显示该数据。但是我需要点击图形上的值显示数据参数,而不是鼠标悬停。下面是代码
<script lang="javascript" type="text/javascript">
$(document).ready(function () {
$('#jqChart').jqChart({
title: "dataHighlighting Event",
legend: { visible: false },
animation: { duration: 1 },
series: [
{
type: 'column',
title: 'Column',
data: [['A', 46], ['B', 35], ['C', 68], ['D', 30],
['E', 27], ['F', 85], ['D', 43], ['H', 29]],
cursor: 'pointer'
},
{
type: 'line',
title: 'Line',
data: [['A', 69], ['B', 57], ['C', 86], ['D', 23],
['E', 70], ['F', 60], ['D', 88], ['H', 22]],
cursor: 'pointer'
}
]
});
$('#jqChart').bind('dataHighlighting', function (e, data) {
displayDataOptions(data);
});
});
function displayDataOptions(data) {
var list = $('#listBlock');
list.children().remove();
if (!data) {
return;
}
list.append('<li>data.chart=' + data.chart + '</li>');
list.append('<li>data.series=' + data.series + '</li>');
list.append('<li>data.dataItem=[' + data.dataItem + ']</li>');
list.append('<li>data.index=' + data.index + '</li>');
list.append('<li>data.x=' + data.x + '</li>');
list.append('<li>data.y=' + data.y + '</li>');
list.append('<li>data.shape=' + data.shape + '</li>');
}
</script>
我使用了onclick代替游标:'pointer'。但鼠标悬停时仍会出现数据参数。有没有人请提供帮助,如何捕获数据点击图形的值。
我一直是这样做的:
function updateChartPos(data){
if (typeof data != 'undefined') {
//SET YOUR GLOBAL VARIABLES
}
}
$('#jqchart').bind('dataHighlighting', function (e, data) {
updateChartPos(data);
});
$(document).on('click', 'canvas', function() {
//Run your function with globals
});
这样做的原因是,如果在jqChart中使用标准数据点单击选项,用户必须直接单击数据点以注册事件。
使用datahighlight绑定和canvas单击监听器的组合,您允许用户单击图形上的任何地方,它将简单地使用他们悬停在上面的最后一个数据点(这为他们单击的误差范围提供了半径)。
你的代码会变成:
<script lang="javascript" type="text/javascript">
$(document).ready(function () {
$('#jqChart').jqChart({
title: "dataHighlighting Event",
legend: { visible: false },
animation: { duration: 1 },
series: [
{
type: 'column',
title: 'Column',
data: [['A', 46], ['B', 35], ['C', 68], ['D', 30],
['E', 27], ['F', 85], ['D', 43], ['H', 29]],
cursor: 'pointer'
},
{
type: 'line',
title: 'Line',
data: [['A', 69], ['B', 57], ['C', 86], ['D', 23],
['E', 70], ['F', 60], ['D', 88], ['H', 22]],
cursor: 'pointer'
}
]
});
$('#jqChart').bind('dataHighlighting', function (e, data) {
updateChartPos(data);
});
});
function updateChartPos(data) {
window.currentInformation = data;
}
function displayDataOptions() {
var data = window.currentInformation;
var list = $('#listBlock');
list.children().remove();
if (!data) {
return;
}
list.append('<li>data.chart=' + data.chart + '</li>');
list.append('<li>data.series=' + data.series + '</li>');
list.append('<li>data.dataItem=[' + data.dataItem + ']</li>');
list.append('<li>data.index=' + data.index + '</li>');
list.append('<li>data.x=' + data.x + '</li>');
list.append('<li>data.y=' + data.y + '</li>');
list.append('<li>data.shape=' + data.shape + '</li>');
}
$(document).on('click', 'canvas', function() {
displayDataOptions();
});
</script>
希望有帮助!jqChart是一个了不起的库,自从我购买了许可证以来,我就对它非常满意。如果你遇到其他问题,可以去他们的论坛看看——管理论坛的人对我提出的任何问题都非常好。