我必须确定鼠标是否在图表内部并显示点的坐标。以下代码适用于chrome但不适用于firefox,因为firefox没有event.offset
属性。
jQuery(chart.container).mouseup(function (event) {
eoffsetX=event.offsetX;
eoffsetY=event.offsetY;
if (eoffsetX > chartX.plotLeft && eoffsetX < chartX.plotLeft + chartX.plotWidth && eoffsetY > chartX.plotTop && eoffsetY < chartX.plotTop + chartX.plotHeight) {
alert ("The clicked x,y point is "+chart.xAxis[0].toValue(eoffsetX, 0)+" , " + chart.yAxis[0].toValue(eoffsetY, 0));
}
所以我通过在网上查看几个答案来修改代码,但它仍然不适用于firefox / IE:
jQuery(chart.container).mouseup(function (event) {
if(event.offsetX === undefined) {
eoffsetX=(event.clientX - jQuery(event.target).offset().left);
eoffsetY=(event.clientY - jQuery(event.target).offset().top);
}
else {
eoffsetX=event.offsetX;
eoffsetY=event.offsetY;
}
if (eoffsetX > chartX.plotLeft && eoffsetX < chartX.plotLeft + chartX.plotWidth && eoffsetY > chartX.plotTop && eoffsetY < chartX.plotTop + chartX.plotHeight) {
alert ("The clicked x,y point is "+chart.xAxis[0].toValue(eoffsetX, 0)+" , " + chart.yAxis[0].toValue(eoffsetY, 0));
}
任何适用于浏览器的解决方案都可以吗?
答案 0 :(得分:1)
您也可以使用:
var offsetX = typeof(e.offsetX)==='undefined' ? e.clientX:e.offsetX,
offsetY = typeof(e.offsetY)==='undefined' ? e.clientY:e.offsetY;
答案 1 :(得分:0)
好的......在我发布问题后几分钟我得到了答案......为可能需要它的人发布解决方案:
简单地替换
jQuery(event.target).offset().left
至jQuery(this).offset().left
和
jQuery(event.target).offset().top
至jQuery(this).offset().top
cheerio它有效!