【发布时间】:2013-06-03 17:34:28
【问题描述】:
怎么做? 我搜索了 Stack Overflow,找到了一个类似的结果,但它不起作用。
这是我的代码:
var Player = Backbone.Model.extend({
defaults: {
//some variables
},
//creating audio element
setAudio: function(ogglink, mp3link){
//code, that works
}
});
var Playlist = Backbone.Collection.extend({
model: Player
});
var MyPlaylist = new Playlist([
//some songs here
]);
var OneSongView = Backbone.View.extend({
//added some 'template' and 'el' code
initialize: function () {
this.model.bind("change", this.render, this);
},
render: function (eventName) {
$(this.el).html(this.template(this.model.toJSON()));
this.model.setAudio(this.model.get("ogglink"), this.model.get("mp3link"));
return this;
},
events: {
//declaration of some events
},
//event functions
});
var AppRouter = Backbone.Router.extend({
//router code
});
var app = new AppRouter();
Backbone.history.start();
如果我添加类似timeupdate:somefunc 的事件,它将不起作用,如果我添加类似here 的代码,我会出错:(
【问题讨论】:
-
哦,不记得完全重建的原因,只是不工作或者'this.$("audio")'不是一个函数......类似的东西
-
啊哈!这是因为,与您链接到的示例解决方案不同,在您的
render方法触发之前,您不会设置this.$el的 HTML。在您这样做之前,您将无法在this.$("audio")上附加事件处理程序。
标签: backbone.js html5-audio backbone-events