Vue:在触发setInterval时选择一个选项

时间:2018-09-24 11:17:50

标签: javascript vue.js vuejs2

在页面上的setInterval触发时,我无法选择一个选项。问题的症结在于如果在setInterval计时器触发时同时选择了一个选项,则无法选择

let updateDelay = 100;

var vueObj = new Vue({
  el: '#app',
  data: {
    items: ['item 1', 'item 2', 'item 3'],
    timer: 60,
    choice: ''
  }
})

setInterval(function() {
  vueObj.timer = vueObj.timer - updateDelay/1000;
}, updateDelay);
<script src="https://unpkg.com/vue"></script>

<div id="app">
  <div id='timer'>Timer: {{ timer.toFixed(1) }}</div>
  <br>
  <select v-model='choice' size=3>
    <option v-for='item in items' :value='item'>{{item}}</option>
  </select>
</div>

  1. 选择键盘很正常。
  2. v-model中删除select
  3. 工作正常。
  4. 当计时器触发频率较低时,效果更好。

http://jsfiddle.net/1bv7se9h/

1 个答案:

答案 0 :(得分:1)

您是对的,似乎Vue存在问题。您应该在vueJS存储库上打开一个问题:https://new-issue.vuejs.org/?repo=vuejs/vue

但是,您可以通过自己编写v模型来运行代码:

<select size="3" @input="choice = $event.target.value">
    <option v-for="item in items" :value="item">{{item}}</option>
</select>

这是工作中的小提琴:http://jsfiddle.net/1bv7se9h/36/