javascript - 如何区分拖动到纸张元素的形状上的双击、右键单击和鼠标滚轮单击 JointJS Raappid

标签 javascript jointjs rappid

我正在尝试在从模板拖到纸张元素上的形状上实现不同事件的代码。 pointup 事件会触发元素周围带有选项的光环。双击事件触发一些模式窗口,右键单击事件触发带有单击操作的自定义上下文菜单。我如何区分 Rappid 中的不同事件,例如左键单击、右键单击、单击鼠标滚轮。我的代码如下。

this.paper.on({
        'element:pointerup': onElementClick,
         //something like contextmenu
        //'element:contextmenu': onElementRightClick,
    });

这是我从 rappid 获得的用于单击和双击的解决方法。它正在工作,但我也在寻找右键单击功能。请帮忙。

paper.on({
    'element:pointerdown': onElementClick
});
var clickTimerId;
function onElementClick(view) {
    if (clickTimerId) {
        // double click
        window.clearTimeout(clickTimerId);
        clickTimerId = null;
        onElementDblClick(view);
    } else {
        // single click
        clickTimerId = window.setTimeout(click, 200);
    }
    function click() {
        clickTimerId = null;
        // open halo and inspector here
    }
}
function onElementDblClick(view) {
    // open the modal window here
}

最佳答案

cell:contextmenu - 当用户右键单击纸张中的单元格时触发。

来自 jointjs api 文档 所以请尝试以下操作

paper.on({
    'element:contextmenu': onElementRightClick
});

function onElementRightClick(view) {

}

关于javascript - 如何区分拖动到纸张元素的形状上的双击、右键单击和鼠标滚轮单击 JointJS Raappid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40645183/

相关文章:

javascript - 如何在 chessboard.js 中保存当前游戏

javascript - JointJS中元素如何访问position、inPorts、outPorts?

jointjs - 形状上的可编辑文本输入

javascript - 当我使用 Javascript 重新加载表单时,我无法保留之前保存的弹出表单数据 - jointJS

javascript - JointJS 中流的标签

javascript - 沿 HTML5 Canvas 路径的连续渐变

javascript - 保持选中图像

javascript - 为什么Javascript中函数调用后面有一个点?

javascript - 如何将 onclick 事件添加到 joint.js 元素?

javascript - 如何创建外部按钮来操作单元格