2012-06-01 2 views
0

Я создаю приложение, в котором пользователь должен иметь возможность щелкнуть элемент, то тот же самый элемент должен быть визуализирован внутри другого деления HTML. Проблема в том, что поведение события нажатия хаотично, и результат не идет так, как ожидалось.Макинтош не обрабатывается должным образом

Я делаю это с помощью моделей backbone.js, коллекций и видов. Любые идеи о том, как это можно зафиксировать для правильного поведения?

Вот код, который я пытаюсь добраться до работы: http://jsfiddle.net/rpKbM/

+0

«тот же элемент должен быть оказаны внутри другого HTML деление». Здесь, в каком другом подразделении вы говорите? –

+0

Глядя на код, есть три холста в коробках div #, каждый из которых имеет другой цветной квадрат. Каждый раз, когда вы нажимаете на одну из этих холстов, этот же холст должен появиться внутри div # new. Например, если вы нажмете на красный квадрат, красный квадрат должен появиться в div # new, оставив нетронутыми поля div #. – rpabon

ответ

3

Проблема заключается в том, что вы передаете экземпляр el, когда вы создаете ваш новый canvas. Попробуйте следующее и должны работать, как ожидалось (это создаст новый элемент вместо перемещения текущего):

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

Смежные вопросы