View difference between Paste ID: k3YwMs8j and vxRKmSX3
SHOW: | | - or go back to the newest paste.
1
// 修改 Viewer.js
2
buildContextMenu() {
3
4
  	// ... other code snippets
5-
    
5+
6-
    const callBack = (key) => {
6+
    this.container.addEventListener('contextmenu', () => {
7-
      let objects, dbId;
7+
      const hideSelectedMenuItem1 = document.querySelector('#contextMenu li[data-key="hide-selected"]');
8
      const hideSelectedMenuItem2 = document.querySelector('#contextMenu li[data-key="isolate-selected"]');
9-
      switch (key) {
9+
10-
        case 'hide-selected':
10+
      if (this.selection.length > 0) {
11-
          if (this.selection.length <= 0) return;
11+
        hideSelectedMenuItem1.style.display = 'block';
12
        hideSelectedMenuItem2.style.display = 'block';
13-
          dbId = this.selection[0];
13+
      } else {
14-
          this.clearSelection();
14+
        hideSelectedMenuItem1.style.display = 'none';
15
        hideSelectedMenuItem2.style.display = 'none';
16-
          objects = this.models.map(m => m.getObjectById(dbId));
16+
17-
          if (!objects || objects.length <= 0) return;
17+
    });
18
19-
          objects.forEach(obj => obj.visible = false);
19+
    document.addEventListener('keydown', (event) => {
20
      if ((event.key == 'Escape' || event.key == 'Esc' || event.keyCode == 27)) {
21-
          break;
21+
        event.preventDefault();
22-
        case 'isolate-selected':
22+
23-
          if (this.selection.length <= 0) return;
23+
        this.clearSelection();
24
25-
          dbId = this.selection[0];
25+
        return false;
26-
          this.clearSelection();
26+
27
    });
28-
          this.models.forEach(m => {
28+
  }