我有一个带有以下选项的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
} };
我希望突出显示在隐藏线条时禁用。目前,如果您将鼠标悬停在不可见的数据点上,则荧光笔仍会显示。有没有办法做到这一点?
答案 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版本中修复此错误。