0

完整代码:https ://github.com/kenpeter/test_vue_simple_audio_1

我附在@onmouseup. input range当我拖动滑块时,progressChange似乎没有被调用。

<input 
  type="range"
  :min="0" 
  :step="1"
  v-model="current"

  :value="current"
  :max="duration"
  @onmouseup="progressChange()"
  />

这里是methods

methods: {
    timeChange: function () {
      this.current = this.$refs.player.currentTime;
    },
    getDuration: function () {
      this.duration = this.$refs.player.duration;
    },
    toggleStatus: function () {
      var player = this.$refs.player;
      this.isPause ? player.play() : player.pause();
      this.isPause = !this.isPause;
    },
    next: function () {
      if (this.audioIndex == this.songs.length - 1) {
        if (this.repeat) {
          this.audioIndex = 0;
        }
      } else {
        this.audioIndex++;
      }
    },
    prev: function () {
      if (this.audioIndex == 0) {
        if (this.repeat) {
          this.audioIndex = this.songs.length - 1;
        }
      } else {
        this.audioIndex--;
      }
    },
    progressChange() {
      console.log("progress change");
    },
4

1 回答 1

7

要回答这个问题以供将来寻找类似问题的人参考:

问题是调用事件的名称错误,因为 VueJS 使用@evenwhere@替换 'on` 的语法,所以你必须使用:

  • @mouseup
  • @点击
  • @keyup: 键名
  • @输入
  • @customEventEmitedByComponent
于 2017-02-28T07:51:06.340 回答