2011-11-24 81 views
3

我希望能够将事件绑定到高图表中的坐标轴,所以我可以在UI中公开一些选项(轴间隔,文本格式,网格线等)在高图轴上的点击事件

似乎不是在高层图中做到这一点的一种方法。到目前为止,当我点击标签时,我可以使用它来完成我的出价,但是当我单击标签之间的空格时,我不能。看到小提琴这里,对于2.2.4版本:http://jsfiddle.net/gW4p6/174/

var chart = new Highcharts.Chart({ 
    chart: { 
     renderTo: 'container', 
     marginRight: 80 // like left 
    }, 
    xAxis: { 
     categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
    }, 
    yAxis: [{ 
      lineWidth: 1, 
      title: { 
       text: 'Secondary Axis' 
      } 
    }], 

    series: [{ 
     data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]   
    }] 
}); 

var clearSelection = function() { $('.highcharts-axis').css('stroke', ''); }; 

$('.highcharts-axis').click(function(event) { 
    clearSelection(); 
    $(this).css('stroke', 'green'); 
    return false; 
}); 
$(document).click(clearSelection); 
$('svg').click(clearSelection); 

有什么办法,我可以可靠渔获g.highcharts轴元素上的click事件?

对于奖励标记,在选项中链接轴与其axis.id的最佳方式是什么?我能想到的最好的方法是依靠轴按照它们提供的顺序渲染的事实,所以我可以循环。

+0

昨天我为此工作了几分钟。我认为这与指针事件属性(http://www.w3.org/TR/SVG/interact.html#PointerEventsProperty)有关。 svg g元素不是“绘制”元素,所以点击事件基于它的子元素。我试图将该属性设置为“全部”,但这也不起作用。该死,这很棘手。 – Mark

回答

5
$('.highcharts-axis text').click(function(){ alert($(this).text()); }); 

这提醒轴的文本。这样你可以将click事件绑定到axis中的每个元素。

+0

我已经有了类似的解决方案 - 你看到小提琴吗?我希望能够点击标签之间的空格。 – XwipeoutX

+0

不幸的是,这不适用于饼图。 – OMA

+0

有谁知道这个解决方案是否仍然有效?原来问题中的jsFiddle似乎不再工作了,我无法得到可接受的解决方案在我的机器上工作 - 事件似乎根本没有约束力,就好像没有阶级一样.highcharts轴文字'...谢谢! – user

-1

您可以使用单击事件。看看的API: http://api.highcharts.com/highcharts#series.data.events.click

从事件处理程序,你可以用“this.name” 甚至串获得某种标识与“this.options.somevariable”

“somevariable “表示您在系列数据中创建的任何变量名称。例如,在我的情况下,我将标识符简称为“id”:

{ 
    name: "My label", 
    id: 6, 
    events: { 
     click: function() 
     { 
     alert(
      'The name is ' + this.name + 
      ' and the identifier is ' + this.options.id 
     ); 
     } 
    } 
} 
+2

问题是关于轴,而不是系列或者数据点。 – PeerBr

相关问题