【问题标题】:Backbone.js initialise script after change html更改 html 后 Backbone.js 初始化脚本
【发布时间】:2012-01-29 19:51:34
【问题描述】:

我使用带有 jquery-template 的主干.js。所以我有看法:

 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>

比我有花式脚本:

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

问题:

我可以如何以及在哪里初始化我的 fancybox 脚本,让它与我的图像一起使用?

谢谢!

【问题讨论】:

    标签: jquery backbone.js jquery-templates


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 2021-06-23
      • 2012-12-29
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多