From 9db988e3ec3cf8a48d0d1774790e7655a236d583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E8=A7=92=E5=B0=8F=E6=9E=97?= <1013335014@qq.com> Date: Mon, 25 Dec 2023 18:09:25 +0800 Subject: [PATCH] =?UTF-8?q?Fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=96=87=E6=9C=AC=E7=BC=96=E8=BE=91=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E4=B8=AD=E9=BC=A0=E6=A0=87=E9=80=89=E6=8B=A9=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E6=97=B6=E7=A7=BB=E9=99=A4=E7=BC=96=E8=BE=91=E6=A1=86=EF=BC=8C?= =?UTF-8?q?=E6=96=87=E5=AD=97=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81=E4=BC=9A?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/core/event/Event.js | 8 ++++++++ simple-mind-map/src/core/render/TextEdit.js | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/simple-mind-map/src/core/event/Event.js b/simple-mind-map/src/core/event/Event.js index bccc2b36..cb22c5a6 100644 --- a/simple-mind-map/src/core/event/Event.js +++ b/simple-mind-map/src/core/event/Event.js @@ -29,6 +29,7 @@ class Event extends EventEmitter { // 绑定函数上下文 bindFn() { + this.onBodyMousedown = this.onBodyMousedown.bind(this) this.onBodyClick = this.onBodyClick.bind(this) this.onDrawClick = this.onDrawClick.bind(this) this.onMousedown = this.onMousedown.bind(this) @@ -45,6 +46,7 @@ class Event extends EventEmitter { // 绑定事件 bind() { + document.body.addEventListener('mousedown', this.onBodyMousedown) document.body.addEventListener('click', this.onBodyClick) this.mindMap.svg.on('click', this.onDrawClick) this.mindMap.el.addEventListener('mousedown', this.onMousedown) @@ -61,6 +63,7 @@ class Event extends EventEmitter { // 解绑事件 unbind() { + document.body.removeEventListener('mousedown', this.onBodyMousedown) document.body.removeEventListener('click', this.onBodyClick) this.mindMap.svg.off('click', this.onDrawClick) this.mindMap.el.removeEventListener('mousedown', this.onMousedown) @@ -79,6 +82,11 @@ class Event extends EventEmitter { this.emit('draw_click', e) } + // 页面的鼠标按下事件 + onBodyMousedown(e) { + this.emit('body_mousedown', e) + } + // 页面的单击事件 onBodyClick(e) { this.emit('body_click', e) diff --git a/simple-mind-map/src/core/render/TextEdit.js b/simple-mind-map/src/core/render/TextEdit.js index 7fc1b1dd..620ba85a 100644 --- a/simple-mind-map/src/core/render/TextEdit.js +++ b/simple-mind-map/src/core/render/TextEdit.js @@ -21,6 +21,7 @@ export default class TextEdit { this.showTextEdit = false // 如果编辑过程中缩放画布了,那么缓存当前编辑的内容 this.cacheEditingText = '' + this.hasBodyMousedown = false this.bindEvent() } @@ -38,7 +39,12 @@ export default class TextEdit { // 隐藏文本编辑框 this.hideEditTextBox() }) + this.mindMap.on('body_mousedown', () => { + this.hasBodyMousedown = true + }) this.mindMap.on('body_click', () => { + if (!this.hasBodyMousedown) return + this.hasBodyMousedown = false // 隐藏文本编辑框 if (this.mindMap.opt.isEndNodeTextEditOnClickOuter) { this.hideEditTextBox()