Магистральные события не связаны - PullRequest
1 голос
/ 23 февраля 2012

Может ли кто-нибудь сказать мне, почему события "click" в приведенном ниже коде 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()
    @

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Попробуйте @delegateEvents () при рендеринге

0 голосов
/ 24 февраля 2012

Понял это, и это было связано с jPlayer.jPlayer каким-то образом переопределял события после факта, поэтому я просто удалил эту функциональность в их скрипте, чтобы заставить его работать.Какая боль, но спасибо всем, кто помог!

...