2016-11-01 3 views
0

У меня есть список предметов. Я хочу перетащить клон элемента из списка в таблицу - пока все хорошо.jQuery UI Draggable - Сохранять возможность перетаскивания после падения

Когда элемент перетаскивается в таблицу, я хотел бы перетащить этот элемент в другую ячейку в таблице. Я надеюсь, что кто-то поможет в этом. Код, который у меня есть до сих пор, является следующим: -

$('.drag').draggable({ 
     cursor:'move',  
     helper:'clone' 
}); 

$('.dog_drop').droppable({ 
     drop: handleDropEvent 
    }); 

function handleDropEvent(event, ui) { 
    var draggable = ui.draggable; 
    $(ui.draggable).clone().appendTo($(this)),  
    // ajax in here 
} 

Я был бы очень признателен за любые советы, которые вы можете предоставить.

Большое спасибо заранее Phill

ответ

1

Вы хотите найти новый добавленный элемент и запустить функцию перетаскивания() на нем.

Например, если элемент .drag это ссылка, которую вы можете сделать следующее:

$('.drag').draggable({ 
    find: '.dog_drop', 
    cursor:'move' 
}); 

$('.dog_drop').droppable({ 
    drop: handleDropEvent 
    }); 

function handleDropEvent(event, ui) { 
    var $this = $(this); 
    $this.append(ui.draggable); 

    $('.dog_drop').find('div:last').draggable({ 
     cursor:'move' 
    }); 

    // ajax in here 
} 

Убедитесь, чтобы выбрать последний пункт, поэтому он может работать с несколькими элементами.

+0

Набиль, это отлично, большое вам спасибо за то, что нашли время ответить. Проблема, которую я сейчас имею в том, что я хотел на самом деле переместить элемент в новую ячейку, а не клонировать ее. Когда я меняю 'clone' на 'original', я получаю очень странное поведение. Я уверен, что это сделать функцию handleDropEvent, но я понятия не имею, как с этим бороться. Любая дополнительная помощь будет очень признательна. – Phill

+0

Вы вполне приветствуете @Phill, чтобы вы могли перетащить элемент из списка в ячейку1 ... а затем перетащить тот же элемент из исходного списка в ячейку2? если это то, что вы хотите, есть два способа сделать это ... вы можете продолжать использовать объект clone и использовать revert также, чтобы вернуть элемент в исходный список ... или вы можете воссоздать элемент в списке. если это то, что вы ищете, я обновлю ответ за вас. –

+0

Привет Набиль. То, что я хочу сделать, это перетащить элемент из списка в ячейку 1. Затем переместите элемент из ячейки1 в ячейку2. В этом случае элемент исчезнет из ячейки 1 и появится в ячейке2. – Phill

Смежные вопросы