有谁能告诉我为什么下面的PlayerView代码中的“click”事件没有被正确绑定/触发?我觉得我错过了一些非常明显的东西,但经过几个小时尝试了许多不同的解决方案后,我感到很茫然。
这是它在路由器中实例化的方式:
App.playerView = new App.Views.PlayerView
el: $("#player")
collection: App.tracks
这里是实际的视图代码(在Coffeescript中使用jPlayer插件代码,以防它相关):
App.Views.PlayerView = Backbone.View.extend
events:
"click .jp-next": "next"
"click .jp-back": "back"
initialize: ->
_.bindAll @, 'render'
@template = _.template $('#player-template').html()
@collection.bind 'reset', @render
@render()
play: (track) ->
...
next: ->
...
back: ->
...
render: ->
$(@el).html @template {}
@player = $("#jplayer").jPlayer
"swfPath": "/"
ready: =>
@next()
ended: =>
@next()
@
答案 0 :(得分:1)
在渲染中尝试@delegateEvents()
答案 1 :(得分:0)
想出来了,这与jPlayer有关。事实之后,jPlayer以某种方式覆盖事件,因此我只是在其脚本中删除了该功能以使其工作。多么痛苦,但感谢所有帮助过的人!