我需要图表中的点击事件。但我还需要允许用户选择放大范围。
点击事件已正确注册。但是在进行选择时,它会同时触发plotselected
和plotclick
事件。
如何防止在plotclick
触发时plotselected
触发事件?
选择插件:https ://github.com/flot/flot/blob/master/jquery.flot.selection.js
我需要图表中的点击事件。但我还需要允许用户选择放大范围。
点击事件已正确注册。但是在进行选择时,它会同时触发plotselected
和plotclick
事件。
如何防止在plotclick
触发时plotselected
触发事件?
选择插件:https ://github.com/flot/flot/blob/master/jquery.flot.selection.js
目前没有,没有办法避免同时获得这两个事件。
一种解决方案可能是删除“可点击”选项,而是收听“plotunselected”事件,该事件由不拖拽的点击触发。
问题是plotselected
触发plotclick
事件。
以下条件检查解决了我的问题。
$("#graph").bind("plotclick", function (event, pos, item) {
if (item == undefined) return false;
// the rest of the click event here
});
resting 的答案对我来说不太管用,因为plotclick
即使没有点击任何项目,我的用例也需要处理事件。
通过在事件处理程序中设置一个变量然后在处理程序中检查它,我能够确定事件是否是事件处理程序中的plotselection
vsplotclick
事件:plotclick
plotselection
plotclick
var plotSelectionEvent = false;
$("#placeholder").bind("plotselected", function (event, ranges) {
plotSelectionEvent = true;
// rest of the plot selection event code
});
$("#placeholder").bind("plotclick", function (event, pos, item) {
// check if this event was originally a plot selection event
// reset the variable and return if it was
if (plotSelectionEvent) {
plotSelectionEvent = false;
return;
}
// rest of the plot selection event code
});