2015-04-03 60 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