2014-05-01 158 views
0

我有一个使用JsPlumb Framework的应用程序。它可以在桌面上正常工作,但是在使用触摸设备时无法正常工作。JsPlumb触摸屏

我有一个可以在屏幕上拖动的对象,在触摸设备和桌面上都可以正常工作。不过,我也有一个动作,当用户点击设备时,它可以设置一个连接器,将一条线拖到另一个对象上以将它们连接在一起。但是,在触摸设备上无法设置连接器。

触摸设备将绘制一个图标,但它会显示出来直接显示。这是否在触摸设备无法辨别拖动/触摸选项之间的区别之前。

我添加了一些代码,看它是否与我的代码有关。

$("#container").append(state) 
jsPlumb.draggable("state" + i); 

jsPlumb.makeSource($('.item'), { 
    connector: 'StateMachine', 
}); 
jsPlumb.makeTarget($('.item'), { 
    anchor: 'Continuous', 
    reattach:true, 
    isTarget:true, 
    beforeDrop:function(params) { 
     'Some code' 
    } 
}); 

EDIT

的jsfiddle

http://jsfiddle.net/8jMqG/6/

再次编辑

从文档下面是表明

提示:对普通数据使用三参数addEndpoint方法 经常发生的一件事是,您有一个Endpoint,其外观和行为在不同元素上的使用情况大致相同,只有一些差异。

var exampleGreyEndpointOptions = { 
    endpoint:"Rectangle", 
    paintStyle:{ width:25, height:21, fillStyle:'#666' }, 
    isSource:true, 
    connectorStyle : { strokeStyle:"#666" }, 
    isTarget:true 

};

这就是我在jsfiddle上所做的。

谢谢, 詹姆斯

回答

1

我一直在使用jsPlumb有一段时间了。我的应用程序在台式电脑&移动。当然,点击&触摸有区别。

我使用jquery-ui-touchpunch支持移动设备;点击,拖动对象/连接&创建连接也可以在移动平台上顺利进行。

http://touchpunch.furf.com/

更新

创建端点或使某些元件源&目标后,下一步是将他们一起出现的连接。当然,如果鞋底的目标是只需连接,那么你可以跳过创建端点/源/目标&使用

jsPlumb.connect({ 
    source:"element1", 
    target:"element2", 
    anchors:["Right", "Left" ], 
    endpoint:"Rectangle", 
    endpointStyle:{ fillStyle: "yellow" } 
}); 

DOCS

目前,你要做出同样直接加入他们的行列元素.item均来源&目标。 此外,您正尝试使每个点击(事件)都使目标具有相同的元素来源&。为什么重复它?

APIDOCS

我想有你需要什么,什么样的代码说一些混乱。

+0

不起作用 - 我可以在屏幕上拖动项目,我只是不能将连接器添加到对象。 –

+0

这很奇怪,如果它在桌面上运行,那么使用'touchpunch'应该可以在手机上运行。你能创造一个小提琴吗? –

+0

添加了一个JSFiddle –