2014-05-01 192 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 –