0

Есть скрипт:

    $("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 остается в ячейке. Но суть задачи заключается именно в том, что бы клонировать объект.

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

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

DemoS
  • 3,931
  • использовать ui.helper вместо ui.draggable не пробовал? – aachurin Dec 19 '11 at 15:44
  • Да пробовал, безрезультатно. Да смысл даже не втом, чтобы класс применить к дропнутому объекту. А в том, чтобы после дропа клон объекта остался в ячейке, а не пропал непонятно куда. – DemoS Dec 19 '11 at 16:15
  • А если самому ручками после дропа объект добавлять в ячейку? – aachurin Dec 19 '11 at 17:58
  • перед confirm делаю var el = ui.droppable;, в success **$(this).append(el);**. И все равно, после дропа объект в ячейке пропадает. – DemoS Dec 19 '11 at 18:08
  • Да пришлось так и сделать! Переведите ваш комментарий в ответ, чтоб я принял. – DemoS Dec 20 '11 at 07:53
  • перебросил – aachurin Dec 21 '11 at 04:38

1 Answers1

1

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

aachurin
  • 489