From 7d8646eb90a95d71cdded513d9734a16ec50247f Mon Sep 17 00:00:00 2001 From: jlukic Date: Tue, 10 Mar 2015 13:12:57 -0400 Subject: [PATCH] Fix destroy method to not possibly unbind scroll evenit from window --- src/definitions/behaviors/visibility.js | 9 ++++++--- src/definitions/modules/sticky.js | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/definitions/behaviors/visibility.js b/src/definitions/behaviors/visibility.js index d2b62658a..80adf5583 100644 --- a/src/definitions/behaviors/visibility.js +++ b/src/definitions/behaviors/visibility.js @@ -95,12 +95,16 @@ $.fn.visibility = function(parameters) { destroy: function() { module.verbose('Destroying previous module'); + if(observer) { + observer.disconnect(); + } + $window.off('load' + eventNamespace); + $window.off('resize' + eventNamespace); + $context.off('scrollchange' + eventNamespace); $module .off(eventNamespace) .removeData(moduleNamespace) ; - $window.off(eventNamespace); - $context.off('scrollchange'); }, observeChanges: function() { @@ -325,7 +329,6 @@ $.fn.visibility = function(parameters) { module.reset(); module.save.position(); module.checkVisibility(); - settings.onRefresh.call(element); }, diff --git a/src/definitions/modules/sticky.js b/src/definitions/modules/sticky.js index eee292d27..cccb752c9 100644 --- a/src/definitions/modules/sticky.js +++ b/src/definitions/modules/sticky.js @@ -92,6 +92,7 @@ $.fn.sticky = function(parameters) { if(observer) { observer.disconnect(); } + $window.off('load' + eventNamespace); $window.off('resize' + eventNamespace); $scroll.off('scrollchange' + eventNamespace); $module.removeData(moduleNamespace); @@ -197,7 +198,7 @@ $.fn.sticky = function(parameters) { }, save: { - scroll: function(scroll) { + lastScroll: function(scroll) { module.lastScroll = scroll; }, positions: function() { @@ -402,7 +403,7 @@ $.fn.sticky = function(parameters) { ; // save current scroll for next run - module.save.scroll(scroll.top); + module.save.lastScroll(scroll.top); if(elementVisible) { @@ -562,6 +563,7 @@ $.fn.sticky = function(parameters) { module.unbind(); module.unfix(); module.resetCSS(); + module.remove.offset(); }, resetCSS: function() {