Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在手机上实现拖动事件_Javascript_Svg_Jointjs_Touch Event - Fatal编程技术网

Javascript 如何在手机上实现拖动事件

Javascript 如何在手机上实现拖动事件,javascript,svg,jointjs,touch-event,Javascript,Svg,Jointjs,Touch Event,拖动事件在桌面上工作,但在移动设备上不工作 我正在使用dragstart和dragend事件 <div><a id="newTask" title="Add new task" draggable="true" ondragstart=getId(this.id) touchstart="getId(this.Id)" ondragend="createShape(event)" touchend="createShape(event)"><img src="ima

拖动事件在桌面上工作,但在移动设备上不工作

我正在使用
dragstart
dragend
事件

<div><a id="newTask" title="Add new task" draggable="true" ondragstart=getId(this.id) touchstart="getId(this.Id)" ondragend="createShape(event)" touchend="createShape(event)"><img src="images/task.png" /></a></div>

对于移动设备,我尝试了
touchstart
touchend
事件,但不起作用

您可以使用hammer.js。它的性能非常好。您可以使用hammer.js。它的性能非常好。
function createShape(event)
{
    var $stageContainer = $("#canvas");
    var stageOffset = $stageContainer.offset();
    clientX = event.clientX;
    clientY = event.clientY;
    offsetX = stageOffset.left;
    offsetY = stageOffset.top;
    x = clientX - offsetX;
    y = clientY - offsetY;

    switch (shapeId)
    {
        case('newTask'):
            createRect(x, y);
            break;
        default:
            console.log("Nothing to drag");
    }
}

function createRect(x, y)
{
    var rect = new joint.shapes.devs.TooledModel({
        position: {x: x, y: y},
        size: {width: 120, height: 85},
        inPorts: [''],
        outPorts: [''],
        attrs: {
            text: {text: 'Edit me', fill: 'black'},
            rect: {
                fill: '#D6F2FC', rx: 7, ry: 15, opacity: .80, 'stroke-width': 2
            },
            '.inPorts circle': {type: 'input'},
            '.outPorts circle': {type: 'output'},
            '.port-body': {r: 3}
        }
    });
    graph.addCell(rect);
}