jqplot从隐形线中删除高光

时间:2011-07-26 10:44:27

标签: jquery highlight jqplot

我有一个带有以下选项的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 个答案:

答案 0 :(得分:1)

在重新绘制之前,您应该尝试将系列的'showHighlight'属性与'show'属性保持同步

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

转到enhancedLegendRenderer.js(注意,无论您是否包含该文件或.min.js)并修复 handleToggle 功能(第219行),如下所示:< / p>

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版本中修复此错误。