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);
}
}
});
我正在使用 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);
}
}
});