Highcharts 如何使某些事件可单击或其他事件不在时间线图表中?

Highcharts 如何使某些事件可单击或其他事件不在时间线图表中?,highcharts,Highcharts,我有这样的数据: var data = [{ x: Date.UTC(1951, 5, 22), name: 'First dogs in space', label: 'fds', dataLabels: { allowOverlap: false, format: '<span style="color:{point.color}">● </span><span style="font-weight

我有这样的数据:

var data = [{
    x: Date.UTC(1951, 5, 22),
    name: 'First dogs in space',
    label: 'fds',
    dataLabels: {
        allowOverlap: false,
        format: '<span style="color:{point.color}">● </span><span style="font-weight: bold;" > ' +
            '</span><br/>{point.label}'
    },
}, {
    x: Date.UTC(1957, 9, 4),
    name: 'First artificial satellite',
    label: 'First artificial satellite',
}, {
    x: Date.UTC(1959, 0, 4),
    name: 'First artificial satellite to reach the Moon',
    label: 'First artificial satellite to reach the Moon',
}, {
    x: Date.UTC(1961, 3, 12),
    name: 'First human spaceflight',
    label: 'First human spaceflight',
}, {
    x: Date.UTC(1966, 1, 3),
    name: 'First soft landing on the Moon',
    label: 'First soft landing on the Moon',
}, {
    x: Date.UTC(1969, 6, 20),
    name: 'First human on the Moon',
    label: 'First human on the Moon',
}, {
    x: Date.UTC(1971, 3, 19),
    name: 'First space station',
    label: 'First space station',
}, {
    x: Date.UTC(1971, 11, 2),
    name: 'First soft Mars landing',
    label: 'First soft Mars landing',
}, {
    x: Date.UTC(1976, 3, 17),
    name: 'Closest flyby of the Sun',
    label: 'Closest flyby of the Sun',
}, {
    x: Date.UTC(1978, 11, 4),
    name: 'First orbital exploration of Venus',
    label: 'First orbital exploration of Venus',
}, {
    x: Date.UTC(1986, 1, 19),
    name: 'First inhabited space station',
    label: 'First inhabited space station',
}, {
    x: Date.UTC(1989, 7, 8),
    name: 'First astrometric satellite',
    label: 'First astrometric satellite',
}, {
    x: Date.UTC(1998, 10, 20),
    name: 'First multinational space station',
    label: 'First multinational space station',
}];
var数据=[{
x:UTC日期(1951年5月22日),
名称:“太空中的第一只狗”,
标签:“fds”,
数据标签:{
allowOverlap:错误,
格式:'●  ' +
“
{point.label}” }, }, { x:UTC日期(1957年9月4日), 名称:“第一颗人造卫星”, 标签:“第一颗人造卫星”, }, { x:UTC日期(1959年0月4日), 名称:“第一颗到达月球的人造卫星”, 标签:“第一颗到达月球的人造卫星”, }, { x:UTC日期(1961年3月12日), 名称:"人类第一次太空飞行",, 标签:“第一次人类太空飞行”, }, { x:UTC日期(1966年1月3日), 名称:“首次月球软着陆”, 标签:“首次月球软着陆”, }, { x:UTC日期(1969年6月20日), 名字:“月球上的第一个人”, 标签:“月球上的第一个人”, }, { x:UTC日期(1971年3月19日), 名称:“第一空间站”, 标签:“第一空间站”, }, { x:UTC日期(1971年11月2日), 名称:“首次火星软着陆”, 标签:“首次火星软着陆”, }, { x:UTC日期(1976年3月17日), 名称:'最近的太阳飞行', 标签:“离太阳最近的飞行距离”, }, { x:UTC日期(1978年11月4日), 名称:“第一次金星轨道探索”, 标签:“第一次金星轨道探索”, }, { x:UTC日期(1986年1月19日), 名称:“第一个有人居住的空间站”, 标签:“第一个有人居住的空间站”, }, { x:UTC日期(1989年7月8日), 名称:“第一颗天体测量卫星”, 标签:“第一颗天体测量卫星”, }, { x:UTC日期(1998年10月20日), 名称:“第一个多国空间站”, 标签:“第一个多国空间站”, }];
以下是供您参考的小提琴链接:

我想要一些可点击的事件或其他不符合我条件的事件。 例如:如果标签名称是“第一颗到达月球的人造卫星”和“第一次软着陆月球”,那么它将不可点击,其他的则可点击

供参考的屏幕截图:

您可以在单击处理()中检查它是否“不可单击”。首先定义那些不可单击的标签:

var unclickable = ["First artificial satellite to reach the Moon", "First soft landing on the Moon"];
然后执行签入
单击
以阻止处理,并在将点悬停在
鼠标上方时显示
默认
光标:

series: [{
  point: {
    events: {
      mouseOver: function() {
        if(unclickable.includes(this.label)) {
          this.dataLabel.element.style.setProperty('cursor', 'default');
          this.dataLabel.text.element.style.setProperty('cursor', 'default');
        }
      },
      click: function(data) {
        if(!unclickable.includes(this.label)) {
            // ...
        }
      }
    }
  }
}]

请注意,您的示例JSFIDLE的标签中有一些
字符,这意味着常规的
在检查
包含时没有得到匹配。请确保只有规则空格,或者在将标签与另一个字符串进行匹配时必须非常精确。

我们可以为此删除光标点吗?看起来仍然可以点击。Halvor-在我的例子中,我给出了最大宽度500px,问题是标签内容不在一行中我尝试了“空白”:nowrap但不起作用你能帮我吗?我附加了一个快照供您参考。@vikash我添加了一个
mouseOver
,以在我编辑的答案中显示默认光标。您能帮我一点忙吗?问题是,当我第一次打开窗口时,我希望“第一颗天体测量卫星”(根据我的条件)标签被选中。