From 9fbbdbef13d8cb1c4c3d8e05dd3dd87ecbcc5bc4 Mon Sep 17 00:00:00 2001 From: zurbchris Date: Wed, 18 Nov 2015 16:27:31 -0800 Subject: [PATCH] further polyfill for transitionend events to support ie... grumblecakes --- js/foundation.core.js | 35 ++++++++++++++++++++++++++++++++--- js/foundation.drilldown.js | 13 +++++++++---- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/js/foundation.core.js b/js/foundation.core.js index 3dff8a16e..117a9c7e1 100644 --- a/js/foundation.core.js +++ b/js/foundation.core.js @@ -179,14 +179,43 @@ var Foundation = { 'MozTransition': 'transitionend', 'OTransition': 'otransitionend' }; - var elem = document.createElement('div'); + var elem = document.createElement('div'), + end; for (var t in transitions){ if (typeof elem.style[t] !== 'undefined'){ - return transitions[t]; + end = transitions[t]; } } - })() + if(!end){ + + } + })(), + transient: function($elem){ + var transitions = { + 'transition': 'transitionend', + 'WebkitTransition': 'webkitTransitionEnd', + 'MozTransition': 'transitionend', + 'OTransition': 'otransitionend' + }; + var elem = document.createElement('div'), + end; + + for (var t in transitions){ + if (typeof elem.style[t] !== 'undefined'){ + end = transitions[t]; + } + } + if(end){ + return end; + }else{ + end = setTimeout(function(){ + $elem.triggerHandler('transitionend', [$elem]); + }, 1); + return 'transitionend'; + } + + } }; Foundation.util = { diff --git a/js/foundation.drilldown.js b/js/foundation.drilldown.js index 5f6bbe893..c850931dc 100644 --- a/js/foundation.drilldown.js +++ b/js/foundation.drilldown.js @@ -274,10 +274,15 @@ Drilldown.prototype._hide = function($elem){ var _this = this; $elem.addClass('is-closing') - .on(Foundation.transitionend + '.zf.drilldown', function(e){ - // console.log('transitionend'); - $(this).removeClass('is-active is-closing').off(Foundation.transitionend + '.zf.drilldown'); - }); + .one(Foundation.transient(), listen); + + function listen(){ + $elem.removeClass('is-active is-closing'); + } + // .on(Foundation.transitionend + '.zf.drilldown', function(e){ + // // console.log('transitionend'); + // $(this).removeClass('is-active is-closing').off(Foundation.transitionend + '.zf.drilldown'); + // }); /** * Fires when the submenu is has closed. * @event Drilldown#hide -- 2.47.2