From 00d3fb45f2fdb549c980bf56a3fa2d9af45e260f Mon Sep 17 00:00:00 2001 From: Emmanuel Garcia Date: Fri, 16 Sep 2016 17:46:30 -0700 Subject: [PATCH 1/2] Fix _shouldHaveListener flag --- iron-scroll-target-behavior.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/iron-scroll-target-behavior.html b/iron-scroll-target-behavior.html index 8d5172b..79076e5 100644 --- a/iron-scroll-target-behavior.html +++ b/iron-scroll-target-behavior.html @@ -86,6 +86,8 @@ this._oldScrollTarget = null; } + this._shouldHaveListener = hasListener; + if (!isAttached) { return; } From 38a20d03006e5eeabdf276f2c428d80c921a336e Mon Sep 17 00:00:00 2001 From: Emmanuel Garcia Date: Fri, 16 Sep 2016 17:55:59 -0700 Subject: [PATCH 2/2] Rename method as toggleScrollListener --- iron-scroll-target-behavior.html | 26 +++++++++++++------------- test/basic.html | 6 +++--- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/iron-scroll-target-behavior.html b/iron-scroll-target-behavior.html index 79076e5..7674611 100644 --- a/iron-scroll-target-behavior.html +++ b/iron-scroll-target-behavior.html @@ -79,15 +79,12 @@ _shouldHaveListener: true, _scrollTargetChanged: function(scrollTarget, isAttached) { - var eventTarget, hasListener = this._shouldHaveListener; + var eventTarget; if (this._oldScrollTarget) { - this._enableScrollListener(false, this._oldScrollTarget); + this._toggleScrollListener(false, this._oldScrollTarget); this._oldScrollTarget = null; } - - this._shouldHaveListener = hasListener; - if (!isAttached) { return; } @@ -105,7 +102,7 @@ this._boundScrollHandler = this._boundScrollHandler || this._scrollHandler.bind(this); this._oldScrollTarget = scrollTarget; - this._enableScrollListener(hasListener, scrollTarget); + this._toggleScrollListener(this._shouldHaveListener, scrollTarget); } }, @@ -235,13 +232,7 @@ return this.scrollTarget instanceof HTMLElement; }, - /** - * Enables or disables the scroll event listener - * - * @param {boolean} yes True to add the event, False to remove it - * @param {HTMLElement} scrollTarget The scroll target - */ - _enableScrollListener: function(yes, scrollTarget) { + _toggleScrollListener: function(yes, scrollTarget) { if (!this._boundScrollHandler) { return; } @@ -252,7 +243,16 @@ } else { eventTarget.removeEventListener('scroll', this._boundScrollHandler); } + }, + + /** + * Enables or disables the scroll event listener. + * + * @param {boolean} yes True to add the event, False to remove it. + */ + toggleScrollListener: function(yes) { this._shouldHaveListener = yes; + this._toggleScrollListener(yes, this.scrollTarget); } }; diff --git a/test/basic.html b/test/basic.html index cbaade2..d3a04e6 100644 --- a/test/basic.html +++ b/test/basic.html @@ -95,16 +95,16 @@ }); }); - test('_enableScrollListener', function(done) { + test('toggleScrollListener', function(done) { flush(function() { xScroll._scrollHandler = sinon.spy(); xScroll.scrollTarget = 'temporaryScrollingRegion'; xScroll.scroll(0, 100); - xScroll._enableScrollListener(true, xScroll.scrollTarget); + xScroll.toggleScrollListener(true); setTimeout(function() { assert.isTrue(xScroll._scrollHandler.called, '_scrollHandler should be called'); xScroll._scrollHandler.reset(); - xScroll._enableScrollListener(false, xScroll.scrollTarget); + xScroll.toggleScrollListener(false); xScroll.scroll(0, 200); setTimeout(function() { assert.isFalse(xScroll._scrollHandler.called, '_scrollHandler should not be called');