Скрипт инициализации Backbone.js после изменения html - PullRequest
1 голос
/ 29 декабря 2011

Я использую backbone.js с jquery-шаблоном.Итак, у меня есть представление:

 var CarpetView = Backbone.View.extend({

            render: function(){
                var html = $("#carpet_designs").tmpl(this.model.toJSON())
                $(this.el).html(html);            
 });

Начальное представление:

 this.view = new CarpetView({ model:element});
 this.view.render();
 $('#dm_'+row).html(this.view.el);

ОК, в моем шаблоне у меня есть галерея: например:

<a rel="gallery_group" id="gallery_fancybox"  href="/uploads/gallery/${p_im}"> <img src="/uploads/gallery/thumbnails/thumb_${p_im}" /></a>

Чем у меня естьСценарий fancybox:

 $("a#gallery_fancybox").fancybox({'overlayOpacity': 0.4});
 $("a[rel=gallery_group]").fancybox();

Вопрос:

Как и где я могу инициализировать мой сценарий fancybox, чтобы он работал с моим изображением?

Спасибо!

1 Ответ

1 голос
/ 29 декабря 2011

Я бы передал последний элемент представлению и инициализировал fancybox в рендере.Как то так

var CarpetView = Backbone.View.extend({
    render: function(){
        var html = $("#carpet_designs").tmpl(this.model.toJSON())
        $(this.el).html(html);

        $(this.el).find("a#gallery_fancybox").fancybox({'overlayOpacity': 0.4});
        $(this.el).find("a[rel=gallery_group]").fancybox();
    }
});

var el='#dm_'+row;
this.view = new CarpetView({model:element, el:el});
this.view.render();
...