2012-02-23 218 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