diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index a7e9d809..fb874fbf 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -520,7 +520,7 @@ class Render { } // 添加节点到激活列表里 - addNodeToActiveList(node) { + addNodeToActiveList(node, notEmitBeforeNodeActiveEvent = false) { if ( this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate && node.userList.length > 0 @@ -528,6 +528,9 @@ class Render { return const index = this.findActiveNodeIndex(node) if (index === -1) { + if (!notEmitBeforeNodeActiveEvent) { + this.mindMap.emit('before_node_active', node, this.activeNodeList) + } this.mindMap.execCommand('SET_NODE_ACTIVE', node, true) this.activeNodeList.push(node) } diff --git a/simple-mind-map/src/core/render/node/Node.js b/simple-mind-map/src/core/render/node/Node.js index 7d0f9b50..075ccb4b 100644 --- a/simple-mind-map/src/core/render/node/Node.js +++ b/simple-mind-map/src/core/render/node/Node.js @@ -482,7 +482,7 @@ class Node { ) this.mindMap.renderer[ isActive ? 'removeNodeFromActiveList' : 'addNodeToActiveList' - ](this) + ](this, true) this.renderer.emitNodeActiveEvent(isActive ? null : this) } this.mindMap.emit('node_mousedown', this, e) @@ -563,7 +563,7 @@ class Node { } this.mindMap.emit('before_node_active', this, this.renderer.activeNodeList) this.renderer.clearActiveNodeList() - this.renderer.addNodeToActiveList(this) + this.renderer.addNodeToActiveList(this, true) this.renderer.emitNodeActiveEvent(this) } diff --git a/simple-mind-map/src/plugins/Select.js b/simple-mind-map/src/plugins/Select.js index b4623c7e..2892d08f 100644 --- a/simple-mind-map/src/plugins/Select.js +++ b/simple-mind-map/src/plugins/Select.js @@ -237,11 +237,13 @@ class Select { return } this.mindMap.renderer.addNodeToActiveList(node) + this.mindMap.renderer.emitNodeActiveEvent() } else if (node.getData('isActive')) { if (!node.getData('isActive')) { return } this.mindMap.renderer.removeNodeFromActiveList(node) + this.mindMap.renderer.emitNodeActiveEvent() } }) }