Вопрос

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

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

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

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

    }
});

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

Это было полезно?

Решение

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, элемент вернется в исходное положение после остановки перетаскивания.Возможные строковые значения:«действительный», «недействительный».Если установлено значение «Недопустимо», возврат произойдет только в том случае, если перетаскиваемый объект не был перенесен на перетаскиваемый объект.На самом деле все наоборот.

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

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

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

Пример:

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

$('.selector').draggable({ scope: 'tasks' });
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top