Highcharts & jQuery:通过按住 Shift 键单击添加标记,然后在释放时处理

Highcharts & jQuery: add a mark by clicking with Shift key pressed, then process on release

我正在使用 Meteor(意味着 jQuery 可以)和 Highcharts。

出于数据分析目的,用户需要能够通过单击图表在两个初始标记之间设置标记。只要按住 shift 键,我希望他们能够做到这一点。这里的算法:

When user click on the chart,
__ if it is the first marker, then add a opening flag;
__ if shift key is hold, then
__ __ **while** Shift key is hold, add a cutting flag;
>>>>    when Shift key is up, *process data*, **<<<< BUT WITHOUT CLICKING!**
__ add a closing flag and *process data*.

WHITOUT CLICKING 快要死了,因为它意味着 keyup 事件处理程序应该包装点击事件。我不知道如何,在 Highcharts 事件上下文中,绑定这两个事件。

这里有一个jsFiddle来说明:https://jsfiddle.net/hsolatges/65ydL2o4/4/

你可以试试这个:

  • 您创建了一个事件来捕捉 keydown。如果它是 shift 键代码,则将反应变量设置为 true。如果可以,请不要使用会话变量 get reactive dict。 (你在你的js文件开头加上var pageSession = new ReactiveDict();
  • 您创建了一个事件来捕获 keyup。如果它是 shift 关键代码,则将反应变量设置为 false
  • 您在图表上创建了一个点击事件处理程序,并检查您的反应变量的状态来执行您的操作。

这里是按键事件的例子:

Template.YourTemplate.events({
"keydown .yourGraph": function(e, t) {
    if (e.which===16) {
        pageSession.set("ShiftPressed", true);  
    }
 }   
});