有没有办法触发plotselected事件而不触发plotclick事件?

时间:2013-04-12 09:39:37

标签: flot

我需要在图表中点击事件。 但我还需要允许用户选择要放大的范围。

点击事件已正确注册。但是,在进行选择时,它会触发plotselectedplotclick个事件。

如果在触发plotclick时阻止plotselected事件被触发,我该怎么办?

选择插件:https://github.com/flot/flot/blob/master/jquery.flot.selection.js

3 个答案:

答案 0 :(得分:0)

目前没有,没有办法避免同时发生这两件事。

一种解决方案可能是删除“可点击”选项,而是收听“plotunselected”事件,该事件由没有拖动的点击触发。

答案 1 :(得分:0)

问题是plotselected触发plotclick事件。

以下条件检查解决了我的问题。

$("#graph").bind("plotclick", function (event, pos, item) {
        if (item == undefined) return false;
        // the rest of the click event here
});

答案 2 :(得分:0)

resting's answer对我来说不太有效,因为即使没有单击任何项​​目,我的用例也需要处理plotclick事件。

通过在plotselection事件处理程序中设置一个变量,然后检查,我能够确定事件在plotclick事件处理程序中是plotclick vs 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

});