Question

I've got a set of elements and I don't want to show them all at once. My problem is that I've got to use this a series of times in the same page. Do you guys know jQuery plugin that does what I've written?

jQuery(function($) {
    $lis = $('.addfilter'); 
    min = 2;
    max = $lis.length;
    var visible = min;

    function showUpToIndex(index) {
        $lis.hide();
        $lis.slice(0, index).show();
    }

    function disableButtons(){
        if (visible >= max){
            visible = max;
            $('#more').hide();
        }
        else
        {
            $('#more').show();
        }
        if (visible <= min){
            visible = min;
            $('#less').hide();
        }
        else
        {
            $('#less').show();
        }
    }

    showUpToIndex(visible);
    disableButtons();

    $('#more').click(function(e) {
        e.preventDefault();
        visible = visible + 5;
        disableButtons();  
        showUpToIndex(visible);
    });

    $('#less').click(function(e) {
        e.preventDefault();
        visible = visible - 5;
        disableButtons();     
        showUpToIndex(visible);
    });
});

Here is a working example: http://jsfiddle.net/cUUfS/179/

Thanks!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top