Створює інтерфейс для перетягування та сортування списку або списків.
Аргументи:
- list - (mixed) обов'язковий, список або списки, які стануть сортованими.
- Цей аргумент може бути Element, масивом Elements або селектором. Коли передається один список (або id), цей список буде сортований лише з самим собою.
- Для увімкнення сортування між списками, один або кілька списків або id мають бути передані за допомогою масиву або селектора. Див. приклади нижче.
- options - (object) Див. опції та події нижче.
Опції:
- constrain - (boolean: за замовчуванням false) Чи обмежувати елемент, що перетягується, його батьківським елементом.
- clone - (mixed: за замовчуванням false) Чи відображати копію фактичного елемента під курсором під час перетягування. Також може бути використано як функція, яка поверне елемент для використання як клон. Функція отримає подію mousedown, елемент та список як аргументи.
- handle - (string: за замовчуванням false) Селектор для вибору елемента всередині кожного сортованого елемента для використання як маркер для сортування цього елемента. Якщо збіг не знайдено, елемент використовується як власний маркер.
- opacity - (integer: за замовчуванням 1) Прозорість елемента-заповнювача
- revert - (mixed: за замовчуванням false) Чи використовувати ефект для плавного переміщення елемента в його кінцеве розташування після сортування. Якщо передати об'єкт, він буде використано як додаткові опції для ефекту revert.
- snap - (integer: за замовчуванням 4) Кількість пікселів, на які елемент має бути перетягнутий, щоб сортування почалося.
Події:
- start - функція, що виконується, коли елемент починає перетягування
- sort - функція, що виконується, коли елемент вставляється в нове місце в одному зі списків
- complete - функція, що виконується, коли елемент закінчує перетягування
Приклади:
var mySortables = new Sortables('list-1', {
revert: { duration: 500, transition: 'elastic:out' }
});
//creates a new Sortable instance over the list with id 'list-1' with some extra options for the revert effect
var mySortables = new Sortables('#list-1, #list-2', {
constrain: true,
clone: false,
revert: true
});
//creates a new Sortable instance allowing the sorting of the lists with id's 'list-1' and 'list-2' with extra options
//since constrain was set to true, the items will not be able to be dragged from one list to the other
var mySortables = new Sortables('#list-1, #list-2, #list-3');
//creates a new Sortable instance allowing sorting between the lists with id's 'list-1', 'list-2, and 'list-3'
(end)
Прив'язує слухача миші до всіх маркерів, увімкнюючи сортування.
Синтаксис:
mySortables.attach();
Повертає:
- (object) Цей екземпляр Sortables.
Відв'язує слухача миші від всіх маркерів, вимкнюючи сортування.
Синтаксис:
mySortables.detach();
Повертає:
- (object) Цей екземпляр Sortables.
Дозволяє додати один або кілька елементів до існуючого екземпляра Sortables.
Синтаксис:
mySortables.addItems(item1[, item2[, item3[, ...]]]);
Аргументи:
- items - (mixed) Оскільки Array.flatten використовується на аргументах, може бути передано один елемент, кілька елементів, масив елементів або будь-яку їх комбінацію.
Повертає:
- (object) Цей екземпляр Sortables.
Приклади:
var mySortables = new Sortables('#list1, #list2');
var element1 = new Element('div');
var element2 = new Element('div');
var element3 = new Element('div');
$('list1').adopt(element1);
$('list2').adopt(element2, element3);
mySortables.addItems(element1, element2, element3);
Примітки:
- Елементи не будуть автоматично вставлені в список, оскільки екземпляр Sortables може мати багато списків.
- Спочатку вставте елементи в відповідний список, потім викличте addItems на них.
Див. також:
Дозволяє видалити один або кілька елементів з існуючого екземпляра Sortables.
Синтаксис:
mySortables.removeItems(item1[, item2[, item3[, ...]]]);
Аргументи:
- items - (mixed) Оскільки Array.flatten використовується на аргументах, може бути передано один елемент, кілька елементів, масив елементів або будь-яку їх комбінацію.
Повертає:
- (Elements) Колекція Elements всіх елементів, що були видалені.
Приклади:
var mySortables = new Sortables('#list1, #list2');
var element1 = $('list1').getFirst();
var element2 = $('list2').getLast();
mySortables.removeItems(element1, element2).destroy(); //the elements will be removed and destroyed
Примітки:
- Елементи не будуть видалені зі списку автоматично, вони просто більше не будуть сортованими.
- Спочатку викличте removeItems на елементах, а потім видаліть їх з контейнерів списків або знищте їх.
Див. також:
Дозволяє додати один або кілька повних списків до існуючого екземпляра Sortables, дозволяючи сортування між новими та старими списками.
Синтаксис:
mySortables.addLists(list1[, list2[, list3[, ...]]]);
Аргументи:
- lists - (mixed) Оскільки Array.flatten використовується на аргументах, може бути передано один елемент, кілька елементів, масив елементів або будь-яку їх комбінацію.
Повертає:
- (object) Цей екземпляр Sortables.
Приклади:
var mySortables = new Sortables('list1');
mySortables.addLists($('list2'));
Примітки:
- Більш складне використання цього методу дозволить робити речі, подібні до однонаправленого сортування.
Див. також:
Дозволяє видалити один або кілька повних списків з існуючого екземпляра Sortables, запобігаючи сортування між списками.
Синтаксис:
mySortables.removeLists(list1[, list2[, list3[, ...]]]);
Аргументи:
- lists - (mixed) Оскільки Array.flatten використовується на аргументах, може бути передано один елемент, кілька елементів, масив елементів або будь-яку їх комбінацію.
Повертає:
- (Elements) Колекція Elements всіх списків, що були видалені.
Приклади:
var mySortables = new Sortables('#list1, #list2');
mySortables.removeLists($('list2'));
Див. також:
Функція для отримання порядку елементів у списках цього екземпляра Sortables.
Для кожного списку буде повернено масив, що містить порядок елементів.
Якщо використовується більше одного списку, всі списки будуть серіалізовані та повернені в масиві.
Аргументи:
- index - (mixed, опціонально) Ціле число або boolean false. Індекс списку для серіалізації. Пропустіть або передайте false для серіалізації всіх списків.
- modifier - (function, опціонально) Функція для перевизначення виводу за замовчуванням Sortables. Див. приклади нижче
Приклади:
mySortables.serialize(1);
//returns the second list serialized (remember, arrays are 0 based...);
//['item_1-1', 'item_1-2', 'item_1-3']
mySortables.serialize();
//returns a nested array of all lists serialized, or if only one list exists, that lists order
/*[['item_1-1', 'item_1-2', 'item_1-3'],
['item_2-1', 'item_2-2', 'item_2-3'],
['item_3-1', 'item_3-2', 'item_3-3']]*/
mySortables.serialize(2, function(element, index){
return element.getProperty('id').replace('item_','') + '=' + index;
}).join('&');
//joins the array with a '&' to return a string of the formatted ids of all the elmements in list 3,with their position
//'3-0=0&3-1=1&3-2=2'