다른 많은 사용자와 마찬가지로 'el'및 이벤트에 문제가 있습니다. 필자의 상황에서는 기본 엘 (just '') 태그 이름을 사용하여 el을 선택기로 설정하고 jQuery 선택기를 사용하고 DOM을 준비하는 등 여러 가지 솔루션을 테스트했습니다. 이러한 솔루션 각각은 이벤트 바인딩에 실패했으며 html 생성시 기본 el 및 tagName이 실패했습니다. 관련 코드 보기 (다른보기에서 추출)보기백본 동적으로 생성 된 'el'바인딩되지 않은 이벤트
view = new Aggregator.Views.Streams.StreamView({model: stream})
console.log view.el
$(@el).append view.render().el
를 호출
$ ->
class Aggregator.Views.Streams.StreamView extends Backbone.View
template:JST["backbone/templates/stream"]
el: $('.item')
events:
"click div" : "testing"
initialize: (model)->
console.log @el
_.bindAll this , 'render'
@model.bind 'change', @render
@model.view = @
@render()
@delegateEvents()
render: ->
$(@el).html "test"
console.log @el
@
testing: ->
alert "EVENT"
#@model.clear()
기능 나는 조금 혼란 스러워요, 나는 엘을 설정하지만 생성하지 않거나 그것은 아무튼 이벤트를 바인드하지 않습니다. 나는 DOM이 생성자에 엘을로드하고 전달하는 것을 기다리지 만 성공하지 못했습니다. 내 가장 확실한 실수에 대한 도움을 주시면 감사하겠습니다.
을! 나는 "클릭"이 뷰 요소가 아닌 문서에 상대적이라고 가정했다. 설명 해줘서 고마워. –
잘 가정이 잘못되면 이벤트 해시는 항상보기 요소 내에서 범위가 지정되므로 아무 것도 클릭하지 않으면 엘 자체에 바인딩되고 뒤에있는 항목을 클릭하면 엘 내부를 검색하게됩니다. – Sander