src/node/js/node.js
function(type, callback, recurse) {
	var evt = localnwt.event;

	for (var i in evt._cached) {
		for(var j=0,numCbs=evt._cached[i].length; j < numCbs; j++) {
			var thisEvt = evt._cached[i][j];
			if (this._node == thisEvt.obj._node && (!type || type == thisEvt.type)) {
				evt.off(thisEvt.obj, thisEvt.type, thisEvt.raw)
			}
		}
	}

	if (recurse) {
		this.all('*').each(function(el){
			el.purge(type, callback, recurse);
		})
	}
}
function(type, callback, recurse) {
	var evt = localnwt.event;

	for (var i in evt._cached) {
		for(var j=0,numCbs=evt._cached[i].length; j < numCbs; j++) {
			var thisEvt = evt._cached[i][j];
			if (this._node == thisEvt.obj._node && (!type || type == thisEvt.type)) {
				evt.off(thisEvt.obj, thisEvt.type, thisEvt.raw)
			}
		}
	}

	if (recurse) {
		this.all('*').each(function(el){
			el.purge(type, callback, recurse);
		})
	}
}
function ( type , callback , recurse ) { var evt = localnwt . event ; for ( var i in evt . _cached ) { for ( var j = 0 , numCbs = evt . _cached [ i ] . length ; j < numCbs ; j ++ ) { var thisEvt = evt . _cached [ i ] [ j ] ; if ( this . _node == thisEvt . obj . _node && ( ! type || type == thisEvt . type ) ) { evt . off ( thisEvt . obj , thisEvt . type , thisEvt . raw ) } } } if ( recurse ) { this . all ( '*' ) . each ( function ( el ) { el . purge ( type , callback , recurse ) ; } ) } }
Purges a node of all listeners
@param string If passed, only purges this type of listener
@param function If passed, only purges the node of this listener
@param bool If true, purges children
Purges a node of all listeners