2017-03-23 2 views
1

Ich benutze Jquery-Ui, um Elemente von einer Liste in eine andere zu ziehen, aber ich möchte in der Lage sein, ein Element zu ziehen, ohne die Maus zu drücken, das heißt, wir drücken die Maus einmal und das Element wird auf den Cursor geklickt und bei nochmaligem Drücken wird das Element an der Stelle abgelegt, an der sich der Cursor befindet.Ziehen eines Objekts ohne Mousedown

Ich weiß nicht, ob es mit Jquery-ui Draggable oder Sortable von Jquery-ui getan werden kann. Ich schätze deine Hilfe.

+0

Tough one! Sie müssen dazu jQuery UI mit einem Patch versehen. Ich werde es versuchen! –

+0

Hallo @StevenMoseley, ich habe mir den Code http://StackOverflow.com/Questions/14445375/Trigger-Click-andHold-Event angesehen, aber ich kann es nicht zur Arbeit bringen. Es ist genau das, was ich will, aber mit Sortable von Jqueryu-Ui – Joseph

+0

ja, diese Antwort verwendet leider nicht jQuery UI-Komponenten. Sie müssen jQuery UI hacken, um zu tun, was Sie wollen, mit dem, was ich unten zu bauen begann. –

Antwort

1

Dies ist keine Antwort, aber es ist wahrscheinlich der Anfang von einem.

Ich war in der Lage zu ziehen ziehbaren Status und ziehen Sie das zugrunde liegende Widget auf klicken.

Leider kann ich den Auslöser nicht finden, um den Ziehen auf Mousevove "anzufangen" und "zu stoppen".

Ich habe keine Zeit, weiter daran zu arbeiten. Hoffentlich kann jemand dort abholen, wo ich aufgehört habe:

$('div.draggable-text').draggable({ disabled: true }).data('draggable', false); 

$('div.draggable-text').on('click', function (event) { 
    // Toggle status 
    var draggable = !$(this).data('draggable'); 
    $(this).data('draggable', draggable); 
    $(this).draggable(draggable ? 'enable' : 'disable'); 

    // Get widget 
    var widget = $(this).data("ui-draggable"); 
    console.log(widget); 

    // Trigger widget start or stop event 
    if (draggable) { 
     //widget._mouseStart(event); 
     widget._trigger("start", event); 
    } else { 
     //widget._mouseStop(event); 
     widget._trigger("stop", event); 
    } 
}); 
Verwandte Themen