событие перетаскивания для jquery-ui-sortable - PullRequest
14 голосов
/ 16 ноября 2011

Как прослушать событие drag при перетаскивании jquery-ui-sortable?

При помощи стратегии hit-n-trial я попробовал событие drag из jquery-ui-draggable, но оно не работает.

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

Ответы [ 3 ]

30 голосов
/ 16 ноября 2011

Используйте sort событие для этой цели:

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

http://jsbin.com/kegeb

3 голосов
/ 10 октября 2017

Если вам нужно обработать событие, когда пользователь начинает перетаскивать , вам следует использовать handle вместо sort:

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

Это событие происходит в начале перетаскивания и при загрузке страницы (http://api.jqueryui.com/sortable/#option-handle).

Я предлагаю вам также проверить этот ответ, в котором объясняются правильные способы обработки ваших элементов при обновлении списка: Получить порядок элементов списка в сортируемом списке jQuery после курорта

Удачи

1 голос
/ 30 апреля 2014

В документации сказано, что вы должны использовать «сортировку» вместо «перетаскивания».

http://api.jqueryui.com/sortable/#option-forcePlaceholderSize

...