2012-02-23 171 views
1

谁能告诉我为什么在下面的PlayerView代码中的“点击”事件未被正确绑定/解雇?我觉得我错过了一些非常明显的东西,但经过几个小时尝试许多不同的解决方案之后,我感到不知所措。未绑定骨干事件

这是它是如何在路由器被实例化:

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

#玩家是在DOM中,我看过模板(可以张贴,如果有帮助)的问题,但没有发现任何东西。我也认为jPlayer可能造成了麻烦,但是在源代码中找不到任何证据。然而,由于它似乎在Backbone中起作用,jPlayer是可能的罪魁祸首。 – joeellis 2012-02-23 07:21:21

回答

1

尝试@ delegateEvents()in render

0

想通了,这是jPlayer相关的。事实之后,jPlayer以某种方式覆盖了事件,所以我只是删除了脚本中的这些功能以使其起作用。多么痛苦,但是感谢所有帮助的人!

+0

你应该接受这个答案 – asymmetric 2012-08-02 16:09:39