2 * this is experimental and probably will not be used. solutions exist for most libraries. but of course if
3 * i want to support multiple scopes at some stage then i will have to do dragging inside jsPlumb.
7 window.jsPlumbDrag = function(_jsPlumb) {
9 var ta = new TouchAdapter();
11 this.draggable = function(selector) {
12 var el, elId, da = [], elo, d = false,
13 isInSelector = function(el) {
14 if (typeof selector == "string")
15 return selector === _jsPlumb.getId(el);
17 for (var i = 0; i < selector.length; i++) {
18 var _sel = jsPlumb.CurrentLibrary.getDOMElement(selector[i]);
19 if (_sel == el) return true;
24 ta.bind(document, "mousedown", function(e) {
25 var target = e.target || e.srcElement;
26 if (isInSelector(target)) {
27 el = jsPlumb.CurrentLibrary.getElementObject(target);
28 elId = _jsPlumb.getId(el);
29 elo = jsPlumb.CurrentLibrary.getOffset(el);
30 da = [e.pageX, e.pageY];
35 ta.bind(document, "mousemove", function(e) {
37 var dx = e.pageX - da[0],
40 jsPlumb.CurrentLibrary.setOffset(el, {
44 _jsPlumb.repaint(elId);
49 ta.bind(document, "mouseup", function(e) {
55 var isIOS = ((/iphone|ipad/gi).test(navigator.appVersion));
57 _jsPlumb.draggable = this.draggable;