如何通过单击元素用户界面表中的下移键来选择批处理行?

时间:2019-05-21 03:49:24

标签: vue.js element-ui

我想通过单击shift键来实现批次选择。我的解决方案是实现keydown和keyup侦听事件。设置一个变量来确定Shift键是否按下。然后循环数据以进行批次选择。

但是我遇到了问题 1.我无法获得正确的isShift值,为什么? 2.如果某列是可排序的,则排序后获取数据将是一个问题。

https://codesandbox.io/s/editable-table-idea-g1pil

有什么建议吗?太棒了!

1 个答案:

答案 0 :(得分:0)

我认为您需要更改代码。在方法creaed事件onKeydown中,您使用匿名函数,因此this.isShift不在Vue数据中

created() {
    document.onkeydown = function(e) {
      var key = window.event.keyCode;
      if (key === 16) {
        this.isShift = true;
      }
    };
    document.onkeyup = function(e) {
      this.isShift = false;
    };
  },

应该是

created() {
    document.onkeydown = this.onKeyDown;
    document.onkeyup =this.onKeyUp;
  },
methods: {
    onKeyDown() {
      var key = window.event.keyCode;
      if (key === 16) {
        this.isShift = true;
      }
    },
    onKeyUp() {
       this.isShift = false;
    },
}

对不起,我的英语不好