From cb4c99516e38b83ff66bf262f12549e039ae5232 Mon Sep 17 00:00:00 2001 From: Kristofer Krause Date: Fri, 8 Apr 2016 12:28:42 -0400 Subject: [PATCH] tabs:destroy fixed; reponsiveToggle:destroy tabs:destroy fixed changed.zf.mediaquery; reponsiveToggle::destroy implemented --- js/foundation.responsiveToggle.js | 13 ++++++++++--- js/foundation.tabs.js | 11 ++++++++--- test/javascript/util/core.js | 2 ++ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/js/foundation.responsiveToggle.js b/js/foundation.responsiveToggle.js index d39cecfe2..c73a1e502 100644 --- a/js/foundation.responsiveToggle.js +++ b/js/foundation.responsiveToggle.js @@ -51,7 +51,9 @@ class ResponsiveToggle { _events() { var _this = this; - $(window).on('changed.zf.mediaquery', this._update.bind(this)); + this._updateMqHandler = this._update.bind(this); + + $(window).on('changed.zf.mediaquery', this._updateMqHandler); this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this)); } @@ -80,7 +82,7 @@ class ResponsiveToggle { * @function * @fires ResponsiveToggle#toggled */ - toggleMenu() { + toggleMenu() { if (!Foundation.MediaQuery.atLeast(this.options.hideFor)) { this.$targetMenu.toggle(0); @@ -93,7 +95,12 @@ class ResponsiveToggle { }; destroy() { - //TODO this... + this.$element.off('.zf.responsiveToggle'); + this.$toggler.off('.zf.responsiveToggle'); + + $(window).off('changed.zf.mediaquery', this._updateMqHandler); + + Foundation.unregisterPlugin(this); } } diff --git a/js/foundation.tabs.js b/js/foundation.tabs.js index 48bebc9bf..3ffffc105 100644 --- a/js/foundation.tabs.js +++ b/js/foundation.tabs.js @@ -93,9 +93,12 @@ class Tabs { _events() { this._addKeyHandler(); this._addClickHandler(); - + this._setHeightMqHandler = null; + if (this.options.matchHeight) { - $(window).on('changed.zf.mediaquery', this._setHeight.bind(this)); + this._setHeightMqHandler = this._setHeight.bind(this); + + $(window).on('changed.zf.mediaquery', this._setHeightMqHandler); } } @@ -271,7 +274,9 @@ class Tabs { .hide(); if (this.options.matchHeight) { - $(window).off('changed.zf.mediaquery'); + if (this._setHeightMqHandler != null) { + $(window).off('changed.zf.mediaquery', this._setHeightMqHandler); + } } Foundation.unregisterPlugin(this); diff --git a/test/javascript/util/core.js b/test/javascript/util/core.js index 904cb2289..b2cba9aa0 100644 --- a/test/javascript/util/core.js +++ b/test/javascript/util/core.js @@ -63,6 +63,8 @@ describe('Foundation core', function() { it('can append a namespace to the number', function() { var id = Foundation.GetYoDigits(6, 'plugin'); + id.should.be.a('string'); + id.should.have.lengthOf(6 + '-plugin'.length); id.should.contain('-plugin'); }); }); -- 2.47.2