鼠标退出画布时停止鼠标拖动

时间:2014-09-15 14:10:17

标签: javascript jquery thejit

我使用 theJit 作为 SpaceTree 来查看一些信息(谁猜到了......)

问题是,当用户平移图表并拖动画布的鼠标时,jit无法识别它并且继续拖动。当用户返回画布的区域时,仍然处于拖动模式并继续进行平移。此行为在Space-Tree-Example

中也是可观察的

(只是为了澄清 - 我正在平移整个图表;我没有将节点拖到某个目标位置......)

我可以通过 jQuery 绑定到$('#container')。mouseleave(),但是如何告诉jit停止拖动?

(由jit(jit.Events。*)提供的mouseOver和mouseLeave处理程序本身绑定到各个节点,因此在这种情况下没有用处)

有人有想法吗?

干杯,

Corelgott _

1 个答案:

答案 0 :(得分:0)

我终于找到了一种方法来做到这一点......绝对不是最干净/最好的做法,但至少可以起作用:

当鼠标离开jit画布的框时,我会模拟完整的鼠标移出事件并将其发送到jit。

使用此代码“How to simulate a mouse click using JavaScript?”,如下所示:

    $('#infovis').mouseleave(function(e) {
        simulate($('canvas')[0], 'mouseup')            
    });

当鼠标存在info-vis-< div>

时,它会停止

希望将来能节省一些时间!

干杯,

Corelgott