jQuery 显示带有 More 和 Less 链接的第一个 X 元素

标签 jquery jquery-ui jquery-plugins

我试图找到一个 jQuery 解决方案,在左侧导航过滤器中显示每个菜单上的前 3 个项目,并带有“显示更多”和“显示更少”链接,使用户能够扩展列表。

我已经搜索了解决方案,但大多数展开/折叠脚本完全隐藏图层,而其他脚本则显示展开(显示更多)链接,但不切换以显示折叠(显示更少)链接。

我的菜单编码如下。

<div id="menu1">
  <ul class="term-list">
    <li class="term-item ">Item 1</li>
    <li class="term-item ">Item 2</li>
    <li class="term-item ">Item 3</li>
    <li class="term-item ">Item 4</li>
  </ul>
</div>
<div id="menu2">
  <ul class="term-list">
    <li class="term-item ">Item 1</li>
    <li class="term-item ">Item 2</li>
    <li class="term-item ">Item 3</li>
    <li class="term-item ">Item 4</li>
  </ul>
</div>

最佳答案

jsBin demo

这只是一个基本示例:

$('ul.term-list').each(function(){
  
  var LiN = $(this).find('li').length;
  
  if( LiN > 3){    
    $('li', this).eq(2).nextAll().hide().addClass('toggleable');
    $(this).append('<li class="more">More...</li>');    
  }
  
});


$('ul.term-list').on('click','.more', function(){
  
  if( $(this).hasClass('less') ){    
    $(this).text('More...').removeClass('less');    
  }else{
    $(this).text('Less...').addClass('less'); 
  }
  
  $(this).siblings('li.toggleable').slideToggle();
    
}); 

或者更多 compact version

关于jQuery 显示带有 More 和 Less 链接的第一个 X 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11073100/

相关文章:

android - 是否可以在显示键盘时处理 Firefox 移动版中的 jQuery 输入事件?

jquery - Droppable 创建(未)嵌套对象 - 但可拖动的位置发生变化

jquery - 如何使 div 宽度可拖动?

jQuery:在文本区域中获得焦点时,删除默认文本+更改颜色,在取消焦点时-将文本放回原处

javascript - 在页面加载时触发 Javascript 文本和图片预览

java - jquery 数组文本框旁边的消息

jquery - 加载时出现客户端验证错误的 rails form_for

javascript - 当您单击关闭按钮时,jQuery UI 对话框会重新加载页面。怎么了?

Jquery 对话框 : Hide the button

javascript - jqBootstrapValidation 插件不适用于我的表单