2015-04-03 58 views
-1

顯示的項目在這裏是我的代碼,以限制在ul可見列表中的項目數量:限制在UI元素中

$wnd.$(el) 
    .find('li:gt(9)') 
    .hide() 
    .end() 
    .append(
    $wnd.$('<li>+More</li>').click(function(){ 
     $wnd.$(this).siblings(':hidden').show().end().remove(); 
    }) 
); 

+More點擊它會立即顯示所有項目。

我應該在代碼中的添加時+More點擊它不會顯示一切還沒有,只是接下來的10個項目?然後,當顯示的所有項目,一個+Less選項應顯示只顯示前10個項目,因爲它是以前。

回答

2

這是一個奇怪的語法,但這樣的事情也許

$wnd.$(el) 
    .find('li:gt(9)') 
    .hide() 
    .end() 
    .append(
     $wnd.$('<li>+More</li>').click(function() { 
      $wnd.$(this).remove().siblings(':hidden').slice(0, 10).show(); 

      if ($wnd.$(el).find('li:hidden').length === 0) { 
       $wnd.$(el).append(
        $wnd.$('<li>+Less</li>').click(function() { 
         $wnd.$(el).find('li:gt(9)').hide(); 
        }) 
       ) 
      } 
     }) 
    ); 
0

這個怎麼樣? https://jsfiddle.net/0hyL9ngr/

HTML

<ul id='some-list'> 
    <li class='list-item'>1</li> 
    <li class='list-item'>2</li> 
    <li class='list-item'>3</li> 
    ... 
    <li class='list-item'>39</li> 
    <li class='list-item'>40</li> 
    <li class='list-item'>41</li> 
    <li id='show-more'>More</li> 
    <li id='show-first-ten'>Less</li> 
</ul> 

的JavaScript

$('#show-more').on('click', function() { 
    $('.list-item:hidden:lt(10)').show(); 
    if ($('.list-item:hidden').length == 0) { 
    $(this).hide(); 
    $('#show-first-ten').show(); 
    } 
}); 

$('#show-first-ten').on('click', function() { 
    $('.list-item:gt(9)').hide(); 
    $(this).hide(); 
    $('#show-more').show(); 
}); 

CSS

#show-more { 
    cursor: pointer; 
} 

#show-first-ten { 
    display: none; 
    cursor: pointer; 
} 

.list-item:nth-child(n+11) { 
    display: none; 
} 
1

這是一種方式:

$('li:gt(9)') 
     .hide() 
     .parent() 
     .append( 
      $('<li>more</li>').on('click', function() {    
       var el = $(this).siblings(':hidden'); 

       if (el.length) el.slice(0, 10).show();     
       else $('li:gt(9)').not(this).hide(); 

       $(this).text($(this).siblings(':hidden').length ? 'more' : 'less');     
      }) 
     ); 

FIDDLE

+0

您的代碼看起來不錯,但我怎麼能使其適應$(EL)作爲第一個查詢我的代碼可以做到這一點的是 – xybrek 2015-04-03 04:13:07

+0

你的意思是這樣的[更新小提琴(http://jsfiddle.net/ztke99m2 /) – Danijel 2015-04-03 14:27:47