0

我有一个带有以下选项的 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
                   } };

我希望在隐藏一行时禁用突出显示。目前,如果您将鼠标悬停在不可见的数据点上,荧光笔仍会显示。有没有办法做到这一点?

4

3 回答 3

1

在重绘之前,您应该尝试使系列的“showHighlight”属性与其“show”属性保持同步

于 2011-07-27T10:20:28.293 回答
1

我设法找到了解决方案。我目前正在使用 jqplot 版本 1.0.0b2_r1012。

转到enhancedLegendRenderer.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 版本中修复。

于 2012-08-09T12:26:03.363 回答
1

重要的! 此问题已在最新的 jqplot 版本中得到修复。

于 2012-08-27T09:57:35.547 回答