Files
vue3-tree-list/src/tools.js
2020-01-30 12:01:36 +08:00

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
}