Пример
$(document).ready(function() { $("#tabs").tabs(); //Код первой вкладки (стандартное использование) $("#drag1").draggable(); //Код второй вкладки (события) var x=0,y=0,z=0; $("#drag2").draggable({ start:function(){ ++x; $("#start").html(x); }, stop:function(){ ++y; $("#stop").html(y);}, drag:function(){ ++z; $("#drag").html(z);} }); //Код третьей вкладки (ограничения) $("#drag3").draggable({axis:'x'}); $("#drag4").draggable({axis:'y'}); $("#drag5").draggable({containment:'parent'}); .... });
С помощью метода draggable Вы можете сделать выбранный элемент перетаскиваемым.
Перетаскиваемому элементу автоматически назначается класс .ui-draggable. Непосредственно во время перетаскивания ему также дополнительно назначается класс .ui-draggable-dragging.
С помощью опций и событий перечисленных в таблицах далее на данной странице Вы можете настраивать поведение перетаскиваемых элементов под конкретные нужды.
Часто перетаскиваемые элементы используются совместно с областями для приема, которые определяются с помощью метода droppable.
$(селектор).draggable(опции_или_события)
селектор выбирает элемент, который будет сделан перетаскиваемым.
опции настраивают дополнительные аспекты поведения перетаскиваемых элементов. Все опции доступные в jQuery UI для перетаскиваемых элементов рассмотренных в таблице далее.
события события связанные с перетаскиваемыми объектами. Все события связанные с перетаскиваемыми объекта рассмотрены в таблице далее.
Опции | Описание |
---|---|
addClass | Если имеет значение false класс .ui-draggable не будет назначаться элементу (используется для увеличения производительности). Значение по умолчанию: true. Пример использования: .draggable({addClass:false}) |
appendTo | Указывает элемент, к которому будет привязываться элемент помощник (элемент, который отображается во время перетаскивания). Значение по умолчанию: 'parent'. Пример использования: .draggable({appendTo:'body'}) |
axis | Позволяет задать ось, по которой можно перетаскивать элемент. Возможные значения: 'x' (элемент можно будет перетаскивать только по горизонтали) и 'y' (элемент можно будет
перетаскивать только по вертикали). Значение по умолчанию: false. Пример использования:.draggable({axis:'y'}) |
cancel | Указывает элемент, нажав на который нельзя перетащить перетаскиваемый объект.
Значение по умолчанию: :input,option. Пример использования:.draggable({cancel:'.nodrag'}) |
connectToSortable | Позволяет связать перетаскиваемый элемент с сортируемым списком. Элемент перетащенный на связанный с ним список станет частью этого списка.
Значение по умолчанию: false. Пример использования: .draggable({connectToSortable:'ul#sortlist'}) |
containment | Ограничивает перетаскивание элемента границами указанного элемента или заданной с помощью координат области.
Возможные строковые значения: 'parent', 'window', 'document', [x1,y1,x2,y2].
Значение по умолчанию: false. Пример использования: .draggable({containment:'#wrap1'}) |
cursor | Позволяет задать вид курсора мыши во время перетаскивания.
Значение по умолчанию: auto. Пример использования: .draggable({cursor:'move'}) |
cursorAt | Задает смещение положения элемента помощника (элемент, который отображается во время перетаскивания объекта) относительно курсора мыши в пикселях. Задается с помощью следующих свойств:
left, right, top, bottom (смещение влево, вправо, вверх и вниз).
Значение по умолчанию: false. Пример использования: .draggable({cursorAt:{left:5}}) |
delay | Устанавливает задержку в миллисекундах перед тем, как элемент начнет перетаскиваться (используется для предотвращения перетаскивания при случайном щелчке на элементе).
Значение по умолчанию: 0. Пример использования: .draggable({delay:400}) |
distance | Устанавливает количество пикселей, на которые должен быть перетащен элемент прежде чем он начнет изменять свое местоположения
(может использоваться для предотвращения перетаскивания при случайном щелчке на элементе).
Значение по умолчанию: 1. Пример использования: .draggable({distance:50}) |
grid | Устанавливает величину сетки, по которой будет перемещаться элемент помощник во время перетаскивания. С помощью координат x, y Вы можете установить размеры сетки.
Значение по умолчанию: false. Пример использования: .draggable({grid:[40,40]}) |
helper | Устанавливает вид элемента помощника (элемент, который отображается во время перетаскивания). Возможные значения: 'original', 'clone', функция
(функция должна возвращать DOM элемент).
Значение по умолчанию: 'original'. Пример использования: .draggable({helper:'clone'}) |
opacity | Устанавливает прозрачность элемента помощника (элемент, который отображается во время перетаскивания).
Значение по умолчанию: false. Пример использования: .draggable({opacity:0.55}) |
revert | Если имеет значение true, то перетаскиваемый элемент будет возвращаться на свою начальную позицию при завершении перетаскивания. При значении
invalid элемент будет возвращаться на свою начальную позицию только если он не будет перемещен в соответствующую ему область для приема.
Значение по умолчанию: false. Пример использования: .draggable({revert:'invalid'}) |
revertDuration | Устанавливает количество миллисекунд, в течении которых перетаскиваемый элемент будет возвращаться на свою начальную позицию.
Значение по умолчанию: 500. Пример использования: .draggable({revertDuration:1000}) |
snap | Указывает элемент, к границам которого будет прилипать перетаскиваемый элемент, когда он будет находится поблизости.
Значение по умолчанию: false. Пример использования: .draggable({snap:'#testel'}) |
stack | Контролирует наложение группы выбранных элементов (всегда отображает перетаскиваемый элемент сверху).
Значение по умолчанию: false. Пример использования: .draggable({stack:'.group'}) |
Все обработчики событий принимают два аргумента - стандартный объект event браузера и специальный объект ui.
Объект ui имеет следующие свойства:
Синтаксис
$(селектор).draggable({событие:function(event,ui){Код обработчика}}) //или $(селектор).bind("dragсобытие",function(event,ui){Код обработчика}})
Обратите внимание: например для того, чтобы привязать к перетаскиваемому элементу с id='test' обработчик события create, который выводит сообщение "привет" необходимо будет написать следующий код: $("#test").draggable({create:function(event,ui){alert("Привет")}}).
События | Описание |
---|---|
create | Определяет функцию, код которой будет выполнен, когда перетаскиваемый элемент будет создан. |
start | Определяет функцию, код которой будет выполнен, когда перетаскивание начнется. |
drag | Определяет функцию, код которой будет выполнен, когда указатель мыши сдвинется во время перетаскивания элемента. |
stop | Определяет функцию, код которой будет выполнен, когда перетаскивание завершится. |