骨干事件没有受到约束

时间:2012-02-23 06:44:44

标签: javascript backbone.js coffeescript jplayer backbone-events

有谁能告诉我为什么下面的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()
    @

2 个答案:

答案 0 :(得分:1)

在渲染中尝试@delegateEvents()

答案 1 :(得分:0)

想出来了,这与jPlayer有关。事实之后,jPlayer以某种方式覆盖事件,因此我只是在其脚本中删除了该功能以使其工作。多么痛苦,但感谢所有帮助过的人!