Skip to content
This repository was archived by the owner on Jan 13, 2020. It is now read-only.
Open
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
68e4f69
Added two callbacks
BeFiveINFO Apr 1, 2015
e2027b0
added 2 more callbacks
BeFiveINFO Apr 1, 2015
ac395cd
Update README.md
BeFiveINFO Apr 1, 2015
3417a3f
Bug fix
BeFiveINFO Apr 1, 2015
9841b3f
Update README.md
BeFiveINFO Apr 1, 2015
389cf0e
Using trigger upon bigfoot90's suggestion
BeFiveINFO Apr 4, 2015
ce0c0ec
example changed
BeFiveINFO Apr 4, 2015
29a6b27
Forgot removing a debug line
BeFiveINFO Apr 4, 2015
89c9ee0
forgot including "list" which trigger returns
BeFiveINFO Apr 4, 2015
597e0f3
added dragJustBeforeStart callback
BeFiveINFO Apr 4, 2015
e8ae799
updated with dragJustBeforeStart example
BeFiveINFO Apr 4, 2015
a3e8b20
Update README.md
BeFiveINFO Apr 4, 2015
ecf0343
dragJustBeforeStart returns handle
BeFiveINFO Apr 4, 2015
dcd85a7
Update README.md
BeFiveINFO Apr 4, 2015
b2bb95c
Destination list of dragStart callback removed
BeFiveINFO Apr 4, 2015
fe05fe8
Destination list removed where unnecessary
BeFiveINFO Apr 4, 2015
23e0716
Destination list removed from onMoveEvent
BeFiveINFO Apr 4, 2015
6dd9d4b
unnecessary settings in the example removed
BeFiveINFO Apr 4, 2015
0f3282d
Destination for dragMove readded
BeFiveINFO Apr 5, 2015
d2fd7d4
Update README.md
BeFiveINFO May 4, 2015
30f395b
added beforeDragEnd
BeFiveINFO May 4, 2015
05f1919
file name change (to the original file name)
BeFiveINFO May 6, 2015
d917aeb
Event name changed: dragJustBeforeStart
BeFiveINFO May 6, 2015
7c22c1e
correction thanks to bigfoot90
BeFiveINFO May 9, 2015
5bf3ad5
beforeDragStart returns same params as dragStart
BeFiveINFO May 9, 2015
b6d63e4
Reverted the beforeDragStart parameter
BeFiveINFO May 9, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
138 changes: 38 additions & 100 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,107 +1,45 @@
Nestable
Nestable with 5 little callbacks
========

## PLEASE NOTE

**I cannot provide any support or guidance beyond this README. If this code helps you that's great but I have no plans to develop Nestable beyond this demo (it's not a final product and has limited functionality). I cannot reply to any requests for help.**

## This is a modified version of Nestable

Original can be found here: https://github.com/dbushell/Nestable

## Example
```
$('#example-list-element').nestable({
afterInit: function ( event ) {
console.log( event );
}
})
.on('dragJustBeforeStart', function(handle) {
console.log('dragStart', handle);
})
.on('dragStart', function(event, item, source) {
console.log('dragStart', event, item, source);
})
.on('dragEnd', function(event, item, source, destination) {
console.log('dragEnd', event, item, source, destination);
})
.on('beforeDragEnd', function(event, item, source, destination, position, feedback) {
if (source[0] === destination[0]) return;
feedback.abort = !window.confirm('Continue?');
})
.on('dragEnd', function(event, item, source, destination, position) {
if (source[0] === destination[0]) return;

// Make an ajax request to persist move on database
// here i need to pass item-id, source-id, destination-id, position index to the server
// ....
})
.on('dragMove', function(event, item, source, destination) {
console.log('dragMove', event, item, source);
});
```
* * *

### Drag & drop hierarchical list with mouse and touch compatibility (jQuery / Zepto plugin)

[**Try Nestable Demo**](http://dbushell.github.com/Nestable/)

Nestable is an experimental example and not under active development. If it suits your requirements feel free to expand upon it!

## Usage

Write your nested HTML lists like so:

<div class="dd">
<ol class="dd-list">
<li class="dd-item" data-id="1">
<div class="dd-handle">Item 1</div>
</li>
<li class="dd-item" data-id="2">
<div class="dd-handle">Item 2</div>
</li>
<li class="dd-item" data-id="3">
<div class="dd-handle">Item 3</div>
<ol class="dd-list">
<li class="dd-item" data-id="4">
<div class="dd-handle">Item 4</div>
</li>
<li class="dd-item" data-id="5">
<div class="dd-handle">Item 5</div>
</li>
</ol>
</li>
</ol>
</div>

Then activate with jQuery like so:

$('.dd').nestable({ /* config options */ });

### Events

The `change` event is fired when items are reordered.

$('.dd').on('change', function() {
/* on change event */
});

### Methods

You can get a serialised object with all `data-*` attributes for each item.

$('.dd').nestable('serialize');

The serialised JSON for the example above would be:

[{"id":1},{"id":2},{"id":3,"children":[{"id":4},{"id":5}]}]

### Configuration

You can change the follow options:

* `maxDepth` number of levels an item can be nested (default `5`)
* `group` group ID to allow dragging between lists (default `0`)

These advanced config options are also available:

* `listNodeName` The HTML element to create for lists (default `'ol'`)
* `itemNodeName` The HTML element to create for list items (default `'li'`)
* `rootClass` The class of the root element `.nestable()` was used on (default `'dd'`)
* `listClass` The class of all list elements (default `'dd-list'`)
* `itemClass` The class of all list item elements (default `'dd-item'`)
* `dragClass` The class applied to the list element that is being dragged (default `'dd-dragel'`)
* `handleClass` The class of the content element inside each list item (default `'dd-handle'`)
* `collapsedClass` The class applied to lists that have been collapsed (default `'dd-collapsed'`)
* `placeClass` The class of the placeholder element (default `'dd-placeholder'`)
* `emptyClass` The class used for empty list placeholder elements (default `'dd-empty'`)
* `expandBtnHTML` The HTML text used to generate a list item expand button (default `'<button data-action="expand">Expand></button>'`)
* `collapseBtnHTML` The HTML text used to generate a list item collapse button (default `'<button data-action="collapse">Collapse</button>'`)

**Inspect the [Nestable Demo](http://dbushell.github.com/Nestable/) for guidance.**

## Change Log

### 15th October 2012

* Merge for Zepto.js support
* Merge fix for remove/detach items

### 27th June 2012

* Added `maxDepth` option (default to 5)
* Added empty placeholder
* Updated CSS class structure with options for `listClass` and `itemClass`.
* Fixed to allow drag and drop between multiple Nestable instances (off by default).
* Added `group` option to enabled the above.

* * *
Original Author: David Bushell [http://dbushell.com](http://dbushell.com/) [@dbushell](http://twitter.com/dbushell/)

Author: David Bushell [http://dbushell.com](http://dbushell.com/) [@dbushell](http://twitter.com/dbushell/)
Big thanks to @bigfoot90 !

Copyright © 2012 David Bushell | BSD & MIT license
Loading