如何使高级图表系列在游标之间切换

时间:2014-02-28 18:04:31

标签: javascript jquery highcharts

嗨我对highcharts和jquery一般都是新手,我想知道是否还有在数据表中的系列点之间切换游标。

例如,对于我的应用程序,我不希望用户点击某些系列,但我确实希望他们点击其他系列

这是一个有人发布的小提琴,我想知道我是否可以创建一个函数就像在“click”中一样,如果设置了“this.options”中的参数,它将在指针之间切换

http://jsfiddle.net/287JP/2/

$(function () {
         $('#container').highcharts({
             chart: {},
             xAxis: {
                 minPadding: 0.05,
                 maxPadding: 0.05
             },

             series: [{
                 data: [{
                     x: 0,
                     y: 29.9,
                     url: 'http://www.google.com'
                 }, {
                     x: 1,
                     y: 71.5,
                     url: 'http://www.yahoo.com'
                 }]
             }],


             plotOptions: {
                 series: {
                     cursor: 'pointer',
                     point: {
                         events: {
                             click: function () {
                                 var url = this.options.url;
                                 window.open(url);
                             }
                         }
                     },
                 }
             },
         });
     });

无论如何都要做

这样的事情
cursor: function() {
  if(this.options.clickable) {
    'pointer'
  } else {
    'default'
  }
}

谢谢

2 个答案:

答案 0 :(得分:2)

您可以向选项添加clickable,然后在点击事件中检查其值。如果它为假,则执行return false。这将取消该事件。 这是您更新的代码

$(function () {
     $('#container').highcharts({
         chart: {},
         xAxis: {
             minPadding: 0.05,
             maxPadding: 0.05
         },

         series: [{
             data: [{
                 x: 0,
                 y: 29.9,
                 url: 'http://www.google.com',
                 clickable: true
             }, {
                 x: 1,
                 y: 71.5,
                 url: 'http://www.yahoo.com',
                 clickable: false
             }]
         }],


         plotOptions: {
             series: {
                 cursor: 'pointer',
                 point: {
                     events: {
                         click: function () {
                             if(!this.options.clickable)
                                 return false;
                             var url = this.options.url;
                             window.open(url);
                         }
                     }
                 },
             }
         },
     });
 });

答案 1 :(得分:2)

这可能是通过在创建后修改图表的属性(例如在回调中)。见post。你可以这样做:

$.each(chart.series[0].data,function(i,point){
    if(point.options.cursorEnabled){ 
        point.graphic.attr({
            cursor:'pointer'
        });
    }
});