diff --git a/src/components/item/item-sliding-gesture.ts b/src/components/item/item-sliding-gesture.ts index 3d0c5a8e49..7ddde117cd 100644 --- a/src/components/item/item-sliding-gesture.ts +++ b/src/components/item/item-sliding-gesture.ts @@ -21,7 +21,7 @@ export class ItemSlidingGesture extends DragGesture { } onTapCallback(ev: any) { - if (isFromOptionButtons(ev.target)) { + if (isFromOptionButtons(ev)) { return; } let didClose = this.closeOpened(); @@ -117,6 +117,10 @@ function getContainer(ev: any): ItemSliding { return null; } -function isFromOptionButtons(ele: HTMLElement): boolean { - return !!closest(ele, 'ion-item-options', true); +function isFromOptionButtons(ev: any): boolean { + let button = closest(ev.target, '.button', true); + if (!button) { + return false; + } + return !!closest(button, 'ion-item-options', true); } diff --git a/src/components/item/item-sliding.ts b/src/components/item/item-sliding.ts index 237606088f..7b709d4f25 100644 --- a/src/components/item/item-sliding.ts +++ b/src/components/item/item-sliding.ts @@ -252,7 +252,7 @@ export class ItemSliding { /** * @private - */ + */ getSlidingPercent(): number { let openAmount = this._openAmount; if (openAmount > 0) { @@ -364,7 +364,7 @@ export class ItemSliding { this._timer = null; } this._openAmount = openAmount; - + if (isFinal) { this.item.setCssStyle(CSS.transition, ''); @@ -380,7 +380,7 @@ export class ItemSliding { let state = (openAmount <= (-this._optsWidthLeftSide - SWIPE_MARGIN)) ? SlidingState.Left | SlidingState.SwipeLeft : SlidingState.Left; - + this._setState(state); } } @@ -392,7 +392,7 @@ export class ItemSliding { this.item.setCssStyle(CSS.transform, ''); return; } - + this.item.setCssStyle(CSS.transform, `translate3d(${-openAmount}px,0,0)`); this.ionDrag.emit(this); } diff --git a/src/components/item/test/sliding/main.html b/src/components/item/test/sliding/main.html index 8dd67247f4..c6f2fe7e69 100644 --- a/src/components/item/test/sliding/main.html +++ b/src/components/item/test/sliding/main.html @@ -36,10 +36,10 @@ - -