【问题标题】:How to show electron context menu upon right click on table row如何在右键单击表格行时显示电子上下文菜单
【发布时间】:2017-03-24 07:52:49
【问题描述】:

我正在尝试学习 Electron 并构建一个简单的应用程序。在 HTML 部分,我有一些行的表格。
我使用“electron-context-menu”NPM 包创建了上下文菜单。现在我希望当我右键单击表格的任何行时会弹出一些菜单,例如删除行。
例如,我有如下一行:

<tr>
  <td id="name-1"></td>
  <td id="prog-1"><progress id='progress-1' max='100' value='0'> </progress></td>
  <td id="size-1"></td>
  <td id="status-1"></td>
  <td style="display:none;" id="path-1"></td>
  <td style="display:none;" id="link-1"></td>
  <td style="display:none;" id="formatid-1"></td>
</tr>

现在,当我右键单击该行时,只会出现删除行菜单,单击该菜单后,我想调用一个函数 deleteRow(this) 来删除该行。
对于动态添加和删除行,我使用的代码来自:

here is JSFiddle

有什么帮助吗?另外,如何获取行中元素的id?

【问题讨论】:

    标签: javascript html electron


    【解决方案1】:

    回调后添加false参数。

    new_row.addEventListener('contextmenu', function(e){
        var t = e.srcElement.id.split('-');
        id = t[1];
        menu.popup(remote.getCurrentWindow());
    }, false);
    

    【讨论】:

      【解决方案2】:

      我自己找到了答案:

      const menu = new Menu();
      menu.append(new MenuItem({
        label: 'Resume', click(){
          console.log('resume clicked');
        }
      }));
      menu.append(new MenuItem({type: 'separator'}));
      menu.append(new MenuItem({
        label: 'Pause', click(){
          console.log('item 2 clicked');
        }
      }));
      

      我在哪里添加动态行:

      new_row.addEventListener('contextmenu', function(e){
            var t = e.srcElement.id.split('-');
            id = t[1];
            menu.popup(remote.getCurrentWindow());
          });
      

      【讨论】:

        猜你喜欢
        • 2010-09-21
        • 1970-01-01
        • 1970-01-01
        • 2019-05-08
        • 1970-01-01
        • 1970-01-01
        • 2022-08-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多