Самое сложное здесь - это знать, когда пользователь перетаскивает точку, а потом не получает данные.Я рекомендую использовать хук postDrawSeries следующим образом:
$(document).ready(function () {
// set up plot
$.jqplot.config.enablePlugins = true;
s1 = [['23-May-08',1],['24-May-08',4],['25-May-08',2],['26-May-08', 6]];
plot1 = $.jqplot('chart1',[s1],{
title: 'Highlighting, Dragging, Cursor and Trend Line',
axes: {
xaxis: {
renderer: $.jqplot.DateAxisRenderer,
tickOptions: {
formatString: '%#m/%#d/%y'
},
numberTicks: 4
},
yaxis: {
tickOptions: {
formatString: '$%.2f'
}
}
},
highlighter: {
sizeAdjust: 10,
tooltipLocation: 'n',
tooltipAxes: 'y',
tooltipFormatString: '<b><i><span style="color:red;">hello</span></i></b> %.2f',
useAxesFormatters: false
},
cursor: {
show: true
}
});
// add our hook, to fire after a series update
$.jqplot.postDrawSeriesHooks.push(updatedSeries);
function updatedSeries(sctx, options) {
console.log(plot1.series[0].data); //data for the series is here
}
});
Вывод при каждом перетаскивании (с обновленной точкой данных):
[
Array[2]
,
Array[2]
,
Array[2]
,
Array[2]
]
Вот пример. (Вам придется кэшировать js-файлы jqPlot в вашем браузере, так как они не позволяют хотлинкинг.)
Вам нужно будет реализовать какой-то таймер, чтобы ждать около 5 секунд или около того, прежде чем вызывать ваш ajaxтак как хук postdrawseries срабатывает на КАЖДОМ событии перетаскивания.Хотя это не должно быть слишком сложно.