Selaa lähdekoodia

编辑器:修复tooltip指令的bug

任一存 3 vuotta sitten
vanhempi
commit
59e45b47bb
1 muutettua tiedostoa jossa 26 lisäystä ja 1 poistoa
  1. 26 1
      packages/code/src/directives/vTooltipInEditor.js

+ 26 - 1
packages/code/src/directives/vTooltipInEditor.js

@@ -75,7 +75,32 @@ Vue.directive('tooltip', {
       passive: false,
     })
     el.addEventListener('mouseleave', function () {
-      document.body.removeChild(tooltipNode)
+      try {
+        document.body.removeChild(tooltipNode)
+      } catch(e) {
+        console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+      }
+    })
+    el.addEventListener('mousedown', function () {
+      try {
+        document.body.removeChild(tooltipNode)
+      } catch(e) {
+        console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+      }
+    })
+    el.addEventListener('keydown', function () {
+      try {
+        document.body.removeChild(tooltipNode)
+      } catch(e) {
+        console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+      }
+    })
+    el.addEventListener('scroll', function () {
+      try {
+        document.body.removeChild(tooltipNode)
+      } catch(e) {
+        console.log('尝试从DOM上移除tooltip元素失败,通常是因为已经在其他回调中被移除了,不需处理:', e);
+      }
     })
   },
 })