Datepicker управляет своим вертикальным положением с помощью атрибута «top» стиля виджета - по какой-либо причине «top» всегда устанавливается в 0 в последующих активациях даты.
Облегчает обход, хотя, если у нас есть данные виджетов, «помнят» правильную позицию и явно устанавливая эту позицию в последующих вызовах. ВИДЕТЬ «OnClose» и функции «beforeShow» определены в опциях Datepicker ниже:
$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?', function(data) {
// Create the chart
window.chart = new Highcharts.StockChart({
chart : {
renderTo : 'container'
},
rangeSelector : {
selected : 1,
inputDateFormat: '%Y-%m-%d',
inputEditDateFormat: '%Y-%m-%d'
},
title : {
text : 'AAPL Stock Price'
},
series : [{
name : 'AAPL',
data : data,
tooltip: {
valueDecimals: 2
}
}]
}, function(chart){
// apply the date pickers
setTimeout(function(){
$('input.highcharts-range-selector', $('#'+chart.options.chart.renderTo))
.datepicker({
beforeShow: function(i,obj) {
$widget = obj.dpDiv;
window.$uiDatepickerDiv = $widget;
if ($widget.data("top")) {
setTimeout(function() {
$uiDatepickerDiv.css("top", $uiDatepickerDiv.data("top"));
},50);
}
}
,onClose: function(i,obj) {
$widget = obj.dpDiv;
$widget.data("top", $widget.position().top);
}
})
},0)
});
});
Вот link to jsFiddle
вышеупомянутое решение работает очень хорошо. ты это попробовал? – jeev
Да, я думаю, что мы постараемся пойти с этим, стыдно, что это не получается из коробки, спасибо очень много – hcharge
Но при использовании нескольких графиков и использовании нескольких datapickers это решение выходит из строя. Он показывает, что datapicker всегда находится на одном графике, а не в том, который вы нажимаете, чтобы показать даты. См. Демонстрацию: http://jsfiddle.net/aNde9/52/ – Alvaro