перетаскивание из html body / div / everything - PullRequest
0 голосов
/ 04 мая 2009

я делаю класс элементов перетаскиваемым вот так

jQuery(".drag").draggable();

jQuery(".drop").droppable({
accept: ".drag",

drop: function(ev, ui) {
//do stuff with dropped data

    }
});

Теперь проблема в том, что я могу перетаскивать элементы из тела и по всему HTML. Как я могу ограничить область, в которой это можно перетаскивать?

1 Ответ

4 голосов
/ 04 мая 2009

http://docs.jquery.com/UI/Draggable#option-containment

Ограничивает перетаскивание в пределах указанного элемента или области. Возможные строковые значения: «родитель», «документ», «окно», [x1, y1, x2, y2].

Пример:

Инициализировать перетаскиваемый объект с указанным параметром сдерживания.

$('.selector').draggable({ containment: 'parent' });

Или в случае, если проблема в том, что перетаскиваемый объект можно разместить повсюду:

http://docs.jquery.com/UI/Draggable#option-revert

Если установлено значение true, элемент вернется в свое начальное положение после прекращения перетаскивания. Возможные строковые значения: 'valid', 'invalid'. Если задано недопустимое значение, возврат будет происходить только в том случае, если перетаскиваемый объект не был сброшен для объекта сбрасывания. По правде говоря, все наоборот.

И наконец, я не вижу, чтобы вы устанавливали область действия перетаскиваемого ( Редактировать : но это не решит вашу проблему, две другие вещи выше должны)

http://docs.jquery.com/UI/Draggable#option-scope

Используется для группировки наборов перетаскиваемых и сбрасываемых предметов, в дополнение к опции подтверждения сбрасываемого предмета. Перетаскиваемый объект с тем же значением области действия, что и объект сбрасывания, будет принят объектом сброса.

* +1032 * Пример: * 1 033 *

Инициализировать перетаскиваемый объект с указанным параметром области.

$('.selector').draggable({ scope: 'tasks' });
...