2013-08-28 4 views
0

У меня есть набор элементов, и я не хочу показывать их сразу. Моя проблема в том, что я должен использовать это несколько раз на одной странице. Вы, ребята, знаете плагин jQuery, который делает то, что я написал?Показать больше/меньше элементов, используя jQuery

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); 
    }); 
}); 

Вот рабочий пример: http://jsfiddle.net/cUUfS/179/

Спасибо!

+0

Ну, вы хотите, чтобы показать более 5 дивы на щелчок '# more' и скрыть 5 по клику '# less'? –

+0

У вас возникла проблема с его использованием несколько раз на одной странице? Оберните его в объект 'var myPlugin = function() {};' и создайте его несколько раз, когда это необходимо. – Vandesh

+0

Что мне делать с показом меньше/больше? Должна ли моя функция добавлять их после последнего интервала опций? –

ответ

3

Пожалуйста, попробуйте это,

http://viralpatel.net/blogs/dynamically-shortened-text-show-more-link-jquery/

https://github.com/mfarid/readmore-readless

Это может помочь я надеюсь

+0

Нет, это обрезает текст (выглядит как другая реализация https://github.com/kswedberg/jquery-expander). Я не хочу урезать шут, только скрывать и показывать. –

+0

Хорошо. Как насчет этого? http://www.joshuawinn.com/examples/hide-max-li/jquery-hide-max-list-items.html –

+0

Хороший подход, но есть две вещи. Во-первых, он просто работает со списками. Во-вторых, он не показывает элементы по этапам (показывается 10 предметов при первом нажатии, а затем еще 10). –

Смежные вопросы