_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));
}
* @function
* @fires ResponsiveToggle#toggled
*/
- toggleMenu() {
+ toggleMenu() {
if (!Foundation.MediaQuery.atLeast(this.options.hideFor)) {
this.$targetMenu.toggle(0);
};
destroy() {
- //TODO this...
+ this.$element.off('.zf.responsiveToggle');
+ this.$toggler.off('.zf.responsiveToggle');
+
+ $(window).off('changed.zf.mediaquery', this._updateMqHandler);
+
+ Foundation.unregisterPlugin(this);
}
}
_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);
}
}
.hide();
if (this.options.matchHeight) {
- $(window).off('changed.zf.mediaquery');
+ if (this._setHeightMqHandler != null) {
+ $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);
+ }
}
Foundation.unregisterPlugin(this);
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');
});
});