更改html后,Backbone.js初始化脚本

时间:2011-12-29 11:09:13

标签: jquery backbone.js jquery-templates

我将backbone.js与jquery-template一起使用。所以我有看法:

 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 个答案:

答案 0 :(得分:1)

我会将最终元素传递给视图并初始化渲染中的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();