2011-12-29 2 views
1

Я использую backbone.js с шаблоном jquery. Поэтому у меня есть вид:Backbone.js инициализировать скрипт после изменения html

var CarpetView = Backbone.View.extend({ 

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

Init вид:

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

Я бы передал последний элемент в представление и инициализировал 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(); 
Смежные вопросы