2012-06-01 13 views
0

사용자가 요소를 클릭 할 수 있어야하는 응용 프로그램을 만들고 나서, 같은 요소를 다른 HTML 부분에 렌더링해야합니다. 문제는 클릭 이벤트의 동작이 혼란스럽고 결과가 예상대로 진행되지 않는다는 것입니다.백본보기가 제대로 렌더링되지 않습니다.

backbone.js 모델, 컬렉션 및보기에서이 작업을 수행하고 있습니다. 이것이 올바른 행동을 위해 어떻게 고쳐 질 수 있는지에 대한 아이디어가 있습니까? http://jsfiddle.net/rpKbM/

+0

작업 "같은 요소는 다른 HTML 내부 렌더링되어야합니다 분할". 여기 당신이 말하는 또 다른 부서는 무엇입니까? –

+0

코드를 보면 div # 상자에 3 개의 캔버스가 있으며 각 캔버스마다 다른 색 사각형이 있습니다. 이 캔버스 중 하나를 클릭 할 때마다 동일한 캔버스가 div # new 안에 나타나야합니다. 예를 들어 빨간색 사각형을 클릭하면 빨간색 사각형이 div # new에 나타나고 변경되지 않은 div # 상자는 그대로 유지됩니다. – rpabon

답변

3

문제는 당신이 당신의 새로운 canvas을 만들 때 el 인스턴스를 전달하는 것입니다 : 여기

내가 직장에 도착하려고 코드입니다. 다음과 (현재의 이동하는 대신 새로운 요소를 작성합니다) 예상대로 작동합니다보십시오 :

canvas.click(function() { 
    var newview = new BoxView({ 
    tagName: 'canvas', //Instead of el: canvas 
    model: model 
    }); 
$("#new").html(newview.render()); 
}); 

을 그리고 여기가 해결 될 때와 jsfiddle

+0

감사합니다 @Alladinian, 괜찮 았는데. tagName과 el의 차이점을 얻지 못했지만, 백본 참조에서 명확하게 언급되지 않았으므로이 두 가지를 빠르게 검토해 주시겠습니까? – rpabon

+1

코드에서 다음을하고 있습니다 :'var el = $ (this.el);'이것은'el'가이 요소의 특정 인스턴스를 참조 함을 의미합니다. 반면에'tagName'을 사용함으로써 백본에게 대신 새로운 (여러분의 예제에서'canvas') 요소를 생성하라고 말하고 있습니다. 이것이 의미가되기를 바란다. – Alladinian

+0

고마워, 그럴거야. – rpabon

관련 문제