У меня проблема при работе с JQuery UI. Чего я пытаюсь добиться, так это:
- У меня есть сортируемый список (
.form_container
) с объектами. Когда их позиция изменяется, ajax call обновляет базу данных.
- За пределами этого списка у меня есть "текстовые элементы" (
.create_item
). Когда эти элементы помещаются в сортируемый список, я хочу сделать ajax-вызов, который даст мне содержимое, чтобы я мог преобразовать свой простой элемент в объект.
- ПОТОМ, поскольку был добавлен новый объект, я хочу, чтобы вызовы ajax запускались. Но не раньше, чем мой новый объект будет загружен должным образом.
Надеюсь, я достаточно ясно ...
Итак, во-первых, я собираюсь сделать что-то подобное
Первая попытка:
$(".create_item").draggable({
containment: 'window',
connectToSortable: ".form_container",
helper: "clone",
});
$(".form_container").droppable({
accept: ".create_item",
tolerance: 'fit',
over: function(event,ui) {
// Something here
},
drop: function(event,ui) {
// Ajax calls that changes my item into an object
}
});
$(".form_container").sortable({
axis: "y",
containment: ".form_container",
revert: true,
update: function(event, ui){
// Ajax calls that update positions in DB
}
});
Проблема в том, что connectToSortable
также вызывает событие drop , поэтому это событие вызывается дважды, что вызывает проблемы.
Так что я последовал чьему-то совету по SOF и изменил свой код на что-то подобное.
Вторая попытка:
$(".create_item").draggable({
containment: 'window',
connectToSortable: ".form_container",
helper: "clone",
});
$(".form_container").droppable({
accept: ".create_item",
tolerance: 'fit',
over: function(event,ui) {
// Something here
}
// No more drop function
});
$(".form_container").sortable({
axis: "y",
containment: ".form_container",
revert: true,
update: function(event, ui){
// Ajax calls that update positions in DB
},
receive: function(event,ui) {
// Ajax calls that changes my item into an object
}
});
Проблема в том, что событие update запускается до того, как событие receive завершено, и мой предмет не был должным образом преобразован в красивый объект.
Это все, кто-то может мне помочь?