You have event handling a bit of the wrong way. Some browsers have an inline object called event , which has a stopPropagation() method. In Firefox, no. jQuery handles these differences elegantly, but you are not using it correctly.
Event handlers look like:
.on('eventName', event, function(){...})
They should be
.on('eventName', function(evt){...})
Where evt is the jQuery wrapper around the event.
function start() { $('.childDiv').addClass('faded').on('transitionend', function(evt){ evt.stopPropagation(); //I suppose this ended the event listener for the childDiv $('.childDiv').off('transitionend'); $('.parentDiv') .addClass('no-height') .on('transitionend',function(evt) { //why is 'opacity' being read? any way to fix this? alert(evt.propertyName); }); }); }
(However, note that jQuery.Event does not have a propertyName propertyName , so final alert will show undefined )
Real-time example: http://jsfiddle.net/qCKcg/
source share