1

谁能告诉我为什么下面的 PlayerView 代码中的“点击”事件没有被正确绑定/触发?我觉得我错过了一些非常明显的东西,但是在尝试了许多不同的解决方案数小时后,我不知所措。

这是它在路由器中的实例化方式:

App.playerView = new App.Views.PlayerView
  el: $("#player")
  collection: App.tracks

这是实际的视图代码(在带有jPlayer插件代码的Coffeescript中,以防它相关):

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()
    @
4

2 回答 2

1

在渲染中尝试@delegateEvents()

于 2012-02-23T11:10:36.473 回答
0

想通了,它与 jPlayer 相关。jPlayer 在事后不知何故覆盖了这些事件,所以我只是在他们的脚本中删除了该功能以使其正常工作。多么痛苦,但感谢所有帮助过的人!

于 2012-02-24T04:08:46.820 回答