Skip to content

Commit 2e9d096

Browse files
committed
fix(ionList): allow scrolling while reorder or delete is active
Closes #1703
1 parent e3db085 commit 2e9d096

File tree

3 files changed

+14
-16
lines changed

3 files changed

+14
-16
lines changed

js/angular/directive/itemDeleteButton.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var ITEM_TPL_DELETE_BUTTON =
2-
'<div class="item-left-edit item-delete ng-hide">' +
2+
'<div class="item-left-edit item-delete ng-hide enable-pointer-events">' +
33
'</div>';
44
/**
55
* @ngdoc directive

js/angular/directive/itemReorderButton.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
var ITEM_TPL_REORDER_BUTTON =
2-
'<div data-prevent-scroll="true" class="item-right-edit item-reorder ng-hide">' +
2+
'<div data-prevent-scroll="true" class="item-right-edit item-reorder ng-hide enable-pointer-events">' +
33
'</div>';
44

55
/**

js/angular/directive/list.js

+12-14
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,12 @@ function($animate, $timeout) {
140140
if (isShown) listCtrl.closeOptionButtons();
141141
listCtrl.canSwipeItems(!isShown);
142142

143+
var deleteButton = jqLite($element[0].getElementsByClassName('item-delete'));
144+
143145
$element.children().toggleClass('list-left-editing', isShown);
144-
toggleNgHide('.item-delete.item-left-edit', isShown);
145-
toggleTapDisabled('.item-content', isShown);
146+
toggleNgHide(deleteButton, isShown);
147+
148+
$element.toggleClass('disable-pointer-events', isShown);
146149
});
147150
$scope.$watch(function() {
148151
return listCtrl.showReorder();
@@ -153,28 +156,23 @@ function($animate, $timeout) {
153156
if (isShown) listCtrl.closeOptionButtons();
154157
listCtrl.canSwipeItems(!isShown);
155158

159+
var reorderButton = jqLite($element[0].getElementsByClassName('item-reorder'));
160+
156161
$element.children().toggleClass('list-right-editing', isShown);
157-
toggleNgHide('.item-reorder.item-right-edit', isShown);
158-
toggleTapDisabled('.item-content', isShown);
162+
toggleNgHide(reorderButton, isShown);
163+
164+
$element.toggleClass('disable-pointer-events', isShown);
159165
});
160166

161-
function toggleNgHide(selector, shouldShow) {
162-
forEach($element[0].querySelectorAll(selector), function(node) {
167+
function toggleNgHide(element, shouldShow) {
168+
forEach(element, function(node) {
163169
if (shouldShow) {
164170
$animate.removeClass(jqLite(node), 'ng-hide');
165171
} else {
166172
$animate.addClass(jqLite(node), 'ng-hide');
167173
}
168174
});
169175
}
170-
function toggleTapDisabled(selector, shouldDisable) {
171-
var el = jqLite($element[0].querySelectorAll(selector));
172-
if (shouldDisable) {
173-
el.attr('data-tap-disabled', 'true');
174-
} else {
175-
el.removeAttr('data-tap-disabled');
176-
}
177-
}
178176
}
179177

180178
};

0 commit comments

Comments
 (0)