Highcharts - 双击事件

时间:2014-06-17 14:29:02

标签: highcharts highstock

高级图表有双击事件,如?

plotOptions: {
        series: {
            cursor: 'pointer',
            marker: {
                radius: 2
            },
            point: {
                events: {
                   // like this any event?If not, any alternative
                   dbclick: function () {
                        $('.highcharts-tooltip').show();
                    },
                    click: function () {
                        $('.highcharts-tooltip').show();
                    },
                    mouseOver: function () {
                        $('.highcharts-tooltip').hide();
                    },
                    mouseOut: function () {
                        $('.highcharts-tooltip').hide();
                    }
                }
            }
        }
}

我想要实现的是,我想在双击点上显示工具提示。

4 个答案:

答案 0 :(得分:3)

您可以使用扩展程序,允许执行此操作。

http://www.highcharts.com/plugin-registry/single/15/Custom-Events

答案 1 :(得分:2)

我尝试使用扩展程序,但它没有用,所以我决定写一个小的双击事件(基于点击事件)。

缺点是它被封装在'click'事件中,但这不是一个大问题,因为它调用了一个单独的函数。

首先,定义设置:

        var doubleClicker = {
            clickedOnce : false,
            timer : null,
            timeBetweenClicks : 400
        };

然后定义一个'双击重置'功能,以防双击不够快和双击回调:

        // call to reset double click timer
        var resetDoubleClick = function() {
          clearTimeout(doubleClicker.timer);
          doubleClicker.timer = null;
          doubleClicker.clickedOnce = false;
        };

        // the actual callback for a double-click event
        var ondbclick = function(e, point) {
          if (point && point.x) {
              // Do something with point data
          }
        };

并在图表的highcharts设置中:

series: [{
  point: {
    events: {

      click: function(e) {
        if (doubleClicker.clickedOnce === true && doubleClicker.timer) {
          resetDoubleClick();
          ondbclick(e, this);
        } else {
          doubleClicker.clickedOnce = true;
          doubleClicker.timer = setTimeout(function(){
            resetDoubleClick();
          }, doubleClicker.timeBetweenClicks);
        }
      }

    }
   }
}]

答案 2 :(得分:1)

您可以在具有图表的容器的dom元素上添加ondblclick事件侦听器。目前,highcharts似乎无法处理该事件,因此该事件将简单地传播到容器中。

答案 3 :(得分:0)

我将捕获变量用作双击参数。设为true时,我清除了doubleclick。

  series: {
    cursor: 'pointer',
    point: {
        events: {
            click: function () {

                if (clickdouble == ('Category: ' + this.category + ', value: ' + this.y)) {
                    alert('Category: ' + this.category + ', value: ' + this.y);
                    clickdouble = '';
                }else{
                    clickdouble = 'Category: ' + this.category + ', value: ' + this.y;
                }

            }
        }
    }
}

对我有用。