46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
/**
|
|
* Created by ayou on 18/2/6.
|
|
*/
|
|
|
|
var handlerCache
|
|
|
|
export const addHandler = function(element, type, handler) {
|
|
handlerCache = handler
|
|
if (element.addEventListener) {
|
|
element.addEventListener(type, handler, false)
|
|
} else if (element.attachEvent) {
|
|
element.attachEvent('on' + type, handler)
|
|
} else {
|
|
element['on' + type] = handler
|
|
}
|
|
}
|
|
|
|
export const removeHandler = function(element, type) {
|
|
if (element.removeEventListener) {
|
|
element.removeEventListener(type, handlerCache, false)
|
|
} else if (element.detachEvent) {
|
|
element.detachEvent('on' + type, handlerCache)
|
|
} else {
|
|
element['on' + type] = null
|
|
}
|
|
}
|
|
|
|
// depth first search
|
|
export const traverseTree = root => {
|
|
var newRoot = {}
|
|
|
|
for (var k in root) {
|
|
if (k !== 'children' && k !== 'parent') {
|
|
newRoot[k] = root[k]
|
|
}
|
|
}
|
|
|
|
if (root.children && root.children.length > 0) {
|
|
newRoot.children = []
|
|
for (var i = 0, len = root.children.length; i < len; i++) {
|
|
newRoot.children.push(traverseTree(root.children[i]))
|
|
}
|
|
}
|
|
return newRoot
|
|
}
|