为什么<htmlaudioelement>没有方法'set'</htmlaudioelement>

时间:2013-06-04 19:05:03

标签: backbone.js javascript-events html5-audio

我的代码如下,当我运行它时,它显示错误 - 没有方法'设置'。 为什么会这样?我已将我的功能绑定到模型,但它似乎工作错误(

var Player = Backbone.Model.extend({
    initialize: function(){         
        _.bind(this.ontimeupdate, this);
        _.bind(this.onprogress, this);
    },      
    setAudio: function(ogglink, mp3link, ontimeupdate){
        var el = document.createElement("audio");           
        el.addEventListener('timeupdate', this.ontimeupdate);
        this.audiotag = el;
    },      
    ontimeupdate: function() {
        this.set("curtime", this.currentTime);
    }
});

2 个答案:

答案 0 :(得分:1)

bindAll(您在进行多次绑定时应该使用)不同,bindreturns the binded function(相当于ECMA的bind方法)。所以......

this.ontimeupdate = _.bind(this.ontimeupdate, this);
this.onprogress = _.bind(this.onprogress, this);

或者

_.bindAll(this);

或者

_.bindAll(this, 'ontimeupdate', 'onprogress');

答案 1 :(得分:0)

如果您将这些方法绑定到this(您的播放器实例),那么您的ontimeupdate方法应该看起来更像这样:

ontimeupdate: function() {
    this.set("curtime", this.audiotag.currentTime);
}