2011-11-16 10 views
10

Come ascoltare l'evento drag quando viene trascinato uno jquery-ui-sortable?evento di trascinamento per jquery-ui-ordinabile

Per strategia hit-n-trial, ho provato l'evento drag da jquery-ui-draggable ma non funziona.

$('.widget_container').sortable({ 
    drag: function(event, ui) { console.log('drag'); } 
}); 

risposta

26

Uso evento sort per questo scopo:

$(".sortable").sortable({ 
    sort: function(e) { 
     console.log('X:' + e.screenX, 'Y:' + e.screenY); 
    } 
}); 

http://jsbin.com/kegeb

+0

wow! uomo geniale. mi chiedo come l'ho perso. –

+1

Così ovvio ora che l'ho visto ... haha. Perfezionare! – daGUY

1

Se è necessario gestire l'evento quando l'utente inizia a trascinamento, è necessario utilizzare handle invece di sort:

$(".sortable").sortable({ 
    handle: function(e) { 
     console.log('Handled'); 
    } 
}); 

Questo evento si verifica all'inizio del trascinamento e quando la pagina viene caricata (http://api.jqueryui.com/sortable/#option-handle).

vi consiglio di controllare anche questa risposta, il che spiega il modo corretto di gestire gli elementi quando l'elenco viene aggiornato: Get order of list items in a jQuery Sortable list after resort

Buona fortuna

+0

Ho provato il metodo 'handle' e ho scoperto che non era in grado di distinguere tra fare clic e trascinare e, stranamente, disabilitare la funzione click to sort. – ariebear

Problemi correlati