jqplot убирает подсветку с невидимых линий - PullRequest
0 голосов
/ 26 июля 2011

У меня есть jQplot со следующими параметрами:

options= {
                title:"Results", 
                legend:{
                   renderer: $.jqplot.EnhancedLegendRenderer,
                   show:true,
                   labels:result,
                   rendererOptions:{
                       numberRows:null,
                       numberColumns:4,
                       seriesToggle:"fast",
                       disableIEFading:true
                   },
                   placement: 'outsideGrid',
                   location: 's'
                },
                axes:{xaxis:{renderer:$.jqplot.DateAxisRenderer, tickOptions:{formatString:'%Y-%m-%d %H:%M'}},
                      highlighter: {

                       sizeAdjust: 10,

                       tooltipLocation: 'n',

                       useAxesFormatters: false,

                       formatString: 'Hello %s dayglow %d'

                   }
                },
                   cursor:{ 
                      show: true,
                      zoom:true, 
                      showTooltip:false
                   } };

Я бы хотел отключить выделение, когда линия скрыта.В настоящее время, если вы наведите курсор мыши на невидимую точку данных, подсветка все равно будет отображаться.Есть ли способ сделать это?

Ответы [ 3 ]

1 голос
/ 27 августа 2012

ВАЖНО! Эта проблема была исправлена ​​в последней версии jqplot.

1 голос
/ 27 июля 2011

Вы должны попытаться синхронизировать атрибут showHighlight серии с атрибутом show перед перерисовкой

0 голосов
/ 09 августа 2012

Мне удалось найти решение. Я использую jqplot версии 1.0.0b2_r1012.

Перейдите к extendedLegendRenderer.js (, позаботьтесь о , включили ли вы этот файл или .min.js) и исправьте функцию handleToggle (строка 219), чтобы она выглядела так:

var handleToggle = function (ev) {
    ev.data.series.toggleDisplay(ev);
    if (ev.data.series.canvas._elem.hasClass('jqplot-series-hidden')) {
        $(this).addClass('jqplot-series-hidden');
        $(this).next('.jqplot-table-legend-label').addClass('jqplot-series-hidden');
        $(this).prev('.jqplot-table-legend-swatch').addClass('jqplot-series-hidden');
        ev.data.series.showHighlight = false;
    }
    else {
        $(this).removeClass('jqplot-series-hidden');
        $(this).next('.jqplot-table-legend-label').removeClass('jqplot-series-hidden');
        $(this).prev('.jqplot-table-legend-swatch').removeClass('jqplot-series-hidden');
        ev.data.series.showHighlight = true;
    }
};

Я добавил строки:

ev.data.series.showHighlight = false;

и

ev.data.series.showHighlight = true;

Внимание: Это исправление не является долгосрочным решением! При следующем обновлении jqplot вы также должны обновить эти строки. Перед обновлением этих строк проверьте, была ли эта ошибка исправлена ​​в этой версии jqplot.

...