Проблемма с draggable и droppable

Есть скрипт:

$("div.event").draggable({
      snap: 'table.calendar td.drop',
      snapMode: 'inner',
      revert: 'invalid',
      cursor: 'move',
      helper: 'clone',
      scroll: false
    });
    $("table.calendar td.drop").droppable({
      accept: "div.event",
      drop: function(event, ui){
                var eventid = ui.draggable.attr("id");
                var date = $(this).attr("id");
                if (confirm("Сохранить?")) {
                    $.ajax({
                        type: "post",
                        url: "/ajax/events_ajax.php",
                        data: {action:"plan_event", eventid:eventid, date:date},
                        success: function(resp){
                            if (resp=="success") ui.draggable.addClass("event_set");
                            else alert(resp);
                        }
                    })
                }
            }
    });

Есть таблица, с td.drop и есть div.event. Когда перемещаем див в ячейку и сбрасываем туда, этому диву надо присвоить класс event_set. Но проблема заключается в том, что новый класс присваивается элементу, который остается неподвижен (т.к. стоит helper: 'clone') - это раз. А второе - при сбрасывании сам перетаскиваемый div из ячейки тоже пропадает. Но confirm и ajax при этом отлично отрабатывают.

Если же убрать helper: 'clone', то все отлично, и класс меняется и div остается в ячейке. Но суть задачи заключается именно в том, что бы клонировать объект.

Если есть какие мысли, подскажите!

Заранее благодарю!

1 ответ

нужно клонировать ui.draggable, или создать новый элемент с учетом заданного набора параметров и вставить в ячеку. Решение в лоб: el = $(ui.draggable.html())

licensed under cc by-sa 3.0 with attribution.