views:

21

answers:

0

I'm using easySlider and masonry but I'm having problems in using multiple instances of easySlider. What I'm trying to do is to remove the first instance of easySlider and then create a new instance that has new set of images.

Here's a demo.

But it doesn't seem to work correctly. When you click box#1 (CM Partners) the slider works great. But when you click on box#3 (NBCM), the slider doesn't work and notice that it adds a 'Previous' link even though it's the first frame/slide. Also, the slider doesn't work.

$(document).ready(function(){

firstClick = true;

$('div.box a.hideable').click(function(){
    $('#grid').masonry({
        singleMode: false,
        columnWidth: 10,
        resizeable: true,
        itemSelector: '.box',
        animate: false,
        saveOptions: true
    });

    // if there's already a box expanded
    if(firstClick == false)
    {
        //alert("Not first click! prev box slider "+prevsliderid);
        $('a').removeClass("hidden");

        $('div#' + prevboxid)
            // remove previous easySlider instance
              $('#'+prevsliderid).easySlider('remove');
              $('div#'+prevboxid+' div').addClass('expandable');
              $('div#'+prevboxid).removeClass('expanded');
              $(this).find('.hideable').show('slow');
              $('#grid').masonry();

        // then open new clicked box
    }


        var boxid = $(this).attr("id");
        var sliderid = $('div#'+boxid+' div.slider').attr("id");
        //alert(sliderid);
        $('div#' + boxid)

              // show hidden content when box has expanded completely
              $('div#'+boxid+' div').removeClass('expandable');
              $('div#'+boxid).addClass('expanded');
              $(this).find('.hideable').hide('slow');
              $('#grid').masonry();

        $(this).addClass('hidden');
        $.scrollTo('div#'+boxid, 400);

        // load easySlider for selected div
        $('#' + sliderid ).easySlider();

    firstClick=false;
    prevboxid = boxid;
    prevsliderid = sliderid;
    return false;

});

});

I'm not sure if I'm doing it right. But here's the part of the code that should remove the first instance:

                // remove previous easySlider instance
              $('#'+prevsliderid).easySlider('remove');

Can someone help me with this? I just need to make easySlider work on the other boxes when expanded.