]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
tabs:destroy fixed; reponsiveToggle:destroy 8558/head
authorKristofer Krause <kris.krause@gmail.com>
Fri, 8 Apr 2016 16:28:42 +0000 (12:28 -0400)
committerKristofer Krause <kris.krause@gmail.com>
Fri, 8 Apr 2016 16:28:42 +0000 (12:28 -0400)
tabs:destroy fixed changed.zf.mediaquery; reponsiveToggle::destroy
implemented

js/foundation.responsiveToggle.js
js/foundation.tabs.js
test/javascript/util/core.js

index d39cecfe26bfaf1d7499840e610d284a66637962..c73a1e502ba3e52c3fe91ceb1842aa0df66b7219 100644 (file)
@@ -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);
   }
 }
 
index 48bebc9bf4fad52e8abd7e238babaa0352d5b806..3ffffc10590d08c1fde6f440eeced006fc96609e 100644 (file)
@@ -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);
index 904cb2289e60e8ba38b2474cc6b80e6298d7cf7a..b2cba9aa002aefa710ff060251c2e57aee88ab72 100644 (file)
@@ -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');
     });
   });