Я работаю над сложным приложением, которое запускается в браузере, но чтобы упростить возникшую у меня проблему, я создал действительно простой пример, показывающий вам проблему.Пожалуйста, не отвечайте на этот вопрос, сказав мне изменить все настройки.
Что мне действительно нужно, так это знать, можно ли это сделать так, как я пытаюсь это сделать, и еслиответ - нет, я вернусь и выясню, что делать вместо этого.
Ссылка на zip с примером
Я пытаюсь сделать "сверху вниз""подход к визуализации и начните с наименьшего элемента, отрендерите его, верните результат родительскому элементу, а затем визуализируйте родительский элемент (с содержимым, возвращенным дочерними элементами).и добавив его к любому объекту DOM, событие click активирует мой код, но затем, когда я беру это содержимое и помещаю его обратно в шаблон, я не могу понять, как заставить его работать (если это возможно).Метод визуализации родительского объекта:
Render: function () {
var subContent = [];
$.each(this.children, function (index, element) {
subContent[subContent.length] = { "Content": element.Render() };
});
var renderedContent = $("#ParentTemplate").tmpl({ "Name": this.Name, "SubContent": subContent });
renderedContent.find(".parentclick").click(function (e) { console.log("parent"); return false; });
return renderedContent;
}
Теперь работает событие click для родительского элемента, но не для дочерних элементов.Мое лучшее предположение состоит в том, что именно эта строка разрушает перехватчики событий:
<tr><td>{{html Content.html()}}</td></tr>
Но есть ли способ поместить объект jQuery (который, я предполагаю, возвращается из метода tmpl) в вывод без потериперехват событий?
К сожалению, после окончания рендеринга нельзя пытаться перехватить события, так как конечный результат будет содержать сотни элементов, и мне нужно, чтобы они были подключены для исправления «родительского» объекта.