Skip to content

Commit 8d6aaab

Browse files
author
Lukas Oppermann
committed
Merge pull request #125 from lukasoppermann/fix-handles
fixing handles to work
2 parents 55a9261 + cfa26d2 commit 8d6aaab

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

src/html.sortable.src.js

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ var _destroySortable = function(sortable) {
132132
_removeSortableEvents(sortable);
133133
_removeSortableData(sortable);
134134
// remove event handlers & data from items
135-
handles.off('selectstart.h5s');
135+
handles.off('mousedown.h5s');
136136
_removeItemEvents(items);
137137
_removeItemData(items);
138138
};
@@ -143,8 +143,19 @@ var _destroySortable = function(sortable) {
143143
var _enableSortable = function(sortable) {
144144
var opts = sortable.data('opts');
145145
var items = sortable.children(opts.items);
146+
var handles = opts.handle ? items.find(opts.handle) : items;
146147
sortable.attr('aria-dropeffect', 'move');
147-
items.attr('draggable', true);
148+
handles.attr('draggable', 'true');
149+
// IE FIX for ghost
150+
if (typeof document.createElement('span').dragDrop === 'function') {
151+
handles.on('mousedown.h5s', function() {
152+
if (items.index(this) !== -1) {
153+
this.dragDrop();
154+
} else {
155+
$(this).parents(opts.items)[0].dragDrop();
156+
}
157+
});
158+
}
148159
};
149160
/*
150161
* public sortable object
@@ -175,7 +186,6 @@ var sortable = function(options) {
175186

176187
var index;
177188
var items = $sortable.children(options.items);
178-
var handles = options.handle ? items.find(options.handle) : items;
179189

180190
if (method === 'reload') {
181191
// remove event handlers from items
@@ -216,18 +226,6 @@ var sortable = function(options) {
216226
items.attr('role', 'option');
217227
items.attr('aria-grabbed', 'false');
218228

219-
// Setup drag handles
220-
handles.attr('draggable', 'true');
221-
// IE FIX for ghost
222-
if (typeof document.createElement('span').dragDrop === 'function') {
223-
handles.on('mousedown', function() {
224-
if (items.index(this) !== -1) {
225-
this.dragDrop();
226-
} else {
227-
$(this).parents(options.items)[0].dragDrop();
228-
}
229-
});
230-
}
231229
// Handle drag events on draggable items
232230
items.on('dragstart.h5s', function(e) {
233231
e.stopImmediatePropagation();

test/internal.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ describe('internal function tests', function(){
9393
assert.isFalse(jQuery._data($li[0], 'events').hasOwnProperty('drop'));
9494
assert.isFalse(jQuery._data($li[0], 'events').hasOwnProperty('dragstart'));
9595
assert.isFalse(jQuery._data($li[0], 'events').hasOwnProperty('dragend'));
96-
assert.isFalse(jQuery._data($li[0], 'events').hasOwnProperty('selectstart'));
96+
assert.isFalse(jQuery._data($li[0], 'events').hasOwnProperty('mousedown'));
9797
});
9898

9999
it('should remove data from sortable', function(){
@@ -118,11 +118,11 @@ describe('internal function tests', function(){
118118
items: 'li',
119119
connectWith: '.test'
120120
});
121-
sortable.__testing._removeItemData($ul);
122-
123-
assert.isUndefined($ul.attr('role'));
124-
assert.isUndefined($ul.attr('draggable'));
125-
assert.isUndefined($ul.attr('aria-grabbed'));
121+
sortable.__testing._removeItemData($ul.find('li'));
122+
var li = $ul.find('li').first();
123+
assert.isUndefined(li.attr('role'));
124+
assert.isUndefined(li.attr('draggable'));
125+
assert.isUndefined(li.attr('aria-grabbed'));
126126
});
127127

128128
});

0 commit comments

Comments
 (0)