обрабатывать кнопку выбора диапазона, когда она находится вне диапазона xaxis ряда данных

#jquery #highcharts #highstock

#jquery #графики

Вопрос:

Минимальный диапазон оси x ряда данных равен 15.05.2006 Я отправляю текущее максимальное значение оси x отображаемой диаграммы 24.05.2011, а кнопка масштабирования выбрана как за последние 7 дней, затем, если я выберу кнопку масштабирования за последние 30 дней, потому что она находится вне диапазона оси x, поэтому я хочу, чтобы этот выбор был недействительным и сохранялась старая кнопка масштабирования за последние 7 дней, и диапазон отображаемой диаграммы не изменился.

как это сделать?

Вот JS-код:

 var end = 1148428800000;
var rowcount;

$(function () {
    $.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.jsonamp;callback=?', function (data) {

        // Create the chart
        $('#container').highcharts('StockChart', {
            navigator: {
                enabled: false
            },
            scrollbar: {
                enabled: false
            },

            rangeSelector: {
                inputEnabled: false,
                selected: 0,
                buttonTheme: {
                    width: null
                },
                buttons: [{
                    type: 'day',
                    count: 6,
                    text: 'past 7 days'
                }, {
                    type: 'day',
                    count: 14,
                    text: 'past 15 days'
                }, {
                    type: 'day',
                    count: 29,
                    text: 'past 30 days'
                }]
            },

            xAxis: {
                max: end,
                type: 'datetime',
                minTickInterval: 24 * 3600 * 1000,
                events: {
                    setExtremes: function (e) {
                        if (typeof (e.rangeSelectorButton) !== 'undefined') {
                            rowcount = e.rangeSelectorButton.count;
                        }
                    }
                }
            },

            title: {
                text: 'AAPL Stock Price'
            },

            series: [{
                name: 'AAPL Stock Price',
                data: data,
                marker: {
                    enabled: true,
                    radius: 3
                },
                shadow: true,
                tooltip: {
                    valueDecimals: 2
                }
            }]
        });
    });

});
  

Вот [Jsfiddle]

Комментарии:

1. Не могли бы вы предоставить более подробную информацию. jsFiddle того, что у вас уже есть, скриншот. Мне кажется, что вам придется выполнить некоторые вычисления на javascript

2. обновлен код jsfiddle и описание проблемы

3. На данный момент у меня не так много времени, чтобы исследовать это. Но я думаю, что ваше время окончания должно быть: var end = 1306195200000;

4. вы не поняли вопроса. Конец установлен и не меняется.

5. Вы можете перенести функцию нажатия кнопки по умолчанию (на rangeselector) с помощью API. highcharts.com/docs/extending-highcharts/extending-highcharts (функция имеет высокие диаграммы. Выбор диапазона.prototype.clickButton.