Fixed that wrong time event will be removed if the callback has added a new time event

Sorry for my poor grammar

Live example for explaining the issue : http://jsfiddle.net/ALcb9/

When the new time event has been added, the array index also will reordered, 
which means `this._i` is no longer representing the index of the event should be removed if the callback(which will add a new time event) called before the deletion. So the event must be removed before calling the callback.