我正在尝试使用 jquery.flot 制作家谱时间表。我想在悬停一个点时显示正确的标签,即当我悬停一个人的结婚点时,会出现标签“结婚 - 结婚日期”。但显然,我无法构建标签数组,因为可以为数据做到这一点。
只需一点代码:
<div id="placeholder" style="width:800px;height:300px"></div> <script language="javascript" type="text/javascript"> $(函数(){ 变量数据 = [ { 标签:[[“出生 Pierre MARTIN (1756)”],[“婚姻 Pierre MARTIN (1781)”],[“死亡 Pierre MARTIN (1812)”]], 数据:[[1756, 20.0], [1781, 20.0], [1812, 20.0]] }, { 标签:[[“出生玛丽杜邦(1761)”],[“玛丽杜邦(1781)”],[“玛丽杜邦(1833)”]], 数据:[[1761, 19.0], [1781, 19.0], [1833, 19.0]] }, { 标签:[[“出生查尔斯马丁(1782)”],[“婚姻查尔斯马丁(1810)”],[“死亡查尔斯马丁(1855)”]], 数据:[[1782, 18.0], [1810, 18.0], [1855, 18.0]] }, { 标签:[[“出生凯瑟琳马丁(1790)”],[“婚姻凯瑟琳马丁(1810)”],[“死亡凯瑟琳马丁(1868)”]], 数据:[[1790, 17.0], [1810, 17.0], [1868, 17.0]] }, { 标签:[[“出生路易斯马丁(1813)”],[“死亡路易斯马丁(1876)”]], 数据:[[1813, 16.0], [1876, 16.0]] } ]; 变量选项 = { 系列: { 线:{显示:真,线宽:5}, 点数:{ 显示:真,半径:4 } }, 图例:{显示:假}, xaxis: { min:1745, max:1885, tickDecimals: 0, tick: [[1750, "1750"], [1760, "1760"], [1770, "1770"], [1780, "1780"], [1790, “1790”], [1800, “1800”], [1810, “1810”], [1820, “1820”], [1830, “1830”], [1840, “1840”], [1850 , "1850"], [1860, "1860"], [1870, "1870"], [1880, "1880"]] }, yaxis:{显示:真,颜色:null,最小:14,最大:22,刻度:[[20,“皮埃尔马丁(1756-1812)”],[19,“玛丽杜邦(1761-1833)”], [18,“查尔斯·马丁(1782-1855)”],[17,“凯瑟琳·马丁(1790-1868)”],[16,“路易斯·马丁(1813-1876)”]]] }, 选择:{模式:“x”}, 网格:{borderWidth:2,可点击:true,可悬停:true,autoHighlight:true }}; var 占位符 = $("#placeholder"); placeholder.bind("plotselected", function (event, range) { $("#selection").text(ranges.xaxis.from.toFixed(1) + " to " + range.xaxis.to.toFixed(1)); var zoom = $("#zoom").attr("checked"); 如果(缩放) plot = $.plot(占位符,数据, $.extend(true, {}, 选项, { xaxis:{ min:ranges.xaxis.from,max:ranges.xaxis.to } })); }); placeholder.bind("plotunselected", function (event) { $("#selection").text(""); }); var plot = $.plot(占位符,数据,选项); $("#clearSelection").click(function () { plot.clearSelection(); }); 功能显示工具提示(x,y,内容){ $('' + 内容 + '').css( { 位置:'绝对', 显示:'无', 顶部:y + 5, 左:x + 5, 边框:'1px 实心#fdd', 填充:'2px', '背景色':'#eef', 不透明度:0.80 }).appendTo("body").fadeIn(20); } var previousPoint = null; $("#placeholder").bind("plothover", function (event, pos, item) { $("#x").text(pos.x.toFixed(2)); $("#y").text(pos.y.toFixed(2)); 如果(项目){ if (previousPoint != item.datapoint) { previousPoint = item.datapoint; $("#tooltip").remove(); var x = item.datapoint[0].toFixed(2), y = item.datapoint[1].toFixed(2); showTooltip(item.pageX, item.pageY, 项目.系列.标签); } } 别的 { $("#tooltip").remove(); 上一个点 = null; } }); }); </脚本>
当我将鼠标悬停在图表的结合点上时,而不是显示:
“婚姻皮埃尔马丁(1781) ”,
我得到了整个数组:
“出生 Pierre MARTIN (1756) 婚姻 Pierre MARTIN (1781) 死亡 Pierre MARTIN (1812) ”。
您可以在此处查看我的示例,以便更清楚地说明(您可以获取代码):
有没有办法在图表上的每个点使用一个标签?