Прослушивание событий относительно @el с backbone.js в атрибуте события представления - PullRequest
1 голос
/ 23 февраля 2012

Я пишу свое мнение так:

class Remobs.Views.Element extends Backbone.View

  template: JST['elements/element']

  events:
    'element_rended': 'initImagesDatas'
    'click img.element_image' : 'observeImageEvents'
    'click .more': 'addToBag'
    'click .less': 'decreaseNumber'

  tagName : 'li'

  render: ->
    $(@el).html(@template(element: @model))
    @currentImage = $(@el).find('img')
    @craftBox = null
    $(@el).trigger('element_rended')
    this

И я хочу добавить элемент в массив событий следующим образом:

events:
   'click @el.find('img')' : 'myfunction'

Могу ли я это сделать? И как я могу это сделать? Я использую jQuery.

1 Ответ

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

вы не можете сделать 'click @el.find('img')', но 'click img' является эквивалентом того, что вы хотите сделать - так что это намного проще:)

способ, которым это работает, состоит в том, что он берет первое слово передпервый пробел в качестве типа события и все, что после этого превращается в селектор jQuery.Если вы передадите только имя события без селектора, событие будет привязано к @el, если вы передадите строку селектора, оно делегирует событие @el.find selector_string

...