5

I m using shadowbox.js for image gallery display.

for this we have to generate html like this

<a href="images/Ganesha3602.jpg" rel="shadowbox[my]"><img src="images/thumb.jpg"   alt="First" title="First image" /></a>
<a href="images/original.jpg" rel="shadow[my]"><img src="images/thumb.jpg" alt="Second" title="Second image" /></a>
<a href="images/original.jpg" rel="shadowbox[my]"><img src="images/thumb.jpg" alt="First" title="First image" /></a>

and then apply Shadowbox.init() on body load. Its working like a charm when the above html is static. But when i generate it dynamically using $.ajax and call Shadowbox.init() on success; shadowbox does not work. I also tried calling Shadowbox.init() on complete.

My code is something like this:

$(document).on('click','#load_posts_comments',function(){

    $.ajax({
        url:"post_comment_json.php",
        type: "POST",
        dataType: "json",
        data:{user_id:"123"},
        success: function(data){
            load_posts_comments(data);
        },
        complete: function(){
            Shadowbox.init();
        }
    });
});

Where am I going wrong? I looked the shadowbox website but there was no documentation regarding dynamically loaded content. Help would be appreciated.

Daedalus
  • 7,586
  • 5
  • 36
  • 61
Bhoot
  • 390
  • 1
  • 3
  • 13

1 Answers1

6

You need to reinitialize it by using Shadowbox.clearCache(); and Shadowbox.setup();.
It's been explained much better here: shadowbox stops working after jquery function call

Community
  • 1
  • 1
Niklas
  • 13,005
  • 23
  • 79
  • 119