andy-h
3/16/2016 - 7:07 PM

Clones an event object. You can optionally pass new initialization values to override the ones from the cloned event object.

Clones an event object. You can optionally pass new initialization values to override the ones from the cloned event object.

function cloneEventObj(eventObj, overrides){
	var p, eventInit = {}, clone;
	overrides = overrides || {};
	
	for(p in eventObj){
		eventInit[p] = eventObj[p];
	}
	for(p in overrides){
		eventInit[p] = overrides[p];
	}
	
	clone = new eventObj.constructor(eventObj.type, eventInit);
	
	//make sure any custom properties get copied to the new event object
	for(p in eventInit){
		try{
			clone[p] = eventInit[p];
		}
		catch(e){}
	}
}