首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >List.js :如何添加过滤器

List.js :如何添加过滤器
EN

Stack Overflow用户
提问于 2014-07-21 01:14:02
回答 1查看 4.7K关注 0票数 1

我正在尝试修改list.js脚本(http://listjs.com/docs/list-api#filter),但是我不能在我的列表上设置过滤器。

我想创建一个过滤器(通过一个按钮),只显示"1986“的项目

你能帮我吗?

代码语言:javascript
复制
 <div id="users">
  <input class="search" placeholder="Search" />
  <button class="sort" data-sort="name">
    Sort by name
  </button>

  <ul class="list">
    <li>
      <h3 class="name">Jonny Stromberg</h3>
      <p class="born">1986</p>
    </li>
    <li>
      <h3 class="name">Jonas Arnklint</h3>
      <p class="born">1985</p>
    </li>
    <li>
      <h3 class="name">Martina Elm</h3>
      <p class="born">1986</p>
    </li>
    <li>
      <h3 class="name">Gustaf Lindqvist</h3>
      <p class="born">1983</p>
    </li>
  </ul>

</div>
<script src="http://listjs.com/no-cdn/list.js"></script>
<script>
 var options = {
  valueNames: [ 'name', 'born' ]
 };

 var userList = new List('users', options)
</script>
EN

回答 1

Stack Overflow用户

发布于 2015-02-27 16:38:53

这里是一个解决方案,如何通过按下按钮过滤1986年。Javascript使用标签(即文本)进行过滤。您还可以在按钮上添加一个属性来进行过滤。

代码语言:javascript
复制
$('.filter-1986').on('click',function(){
  var $text = $(this).text();
  if($(this).hasClass( 'selected' )){
    userList.filter();
    $(this).removeClass('selected');
  } else {
    userList.filter(function(item) {
      return (item.values().born == $text);
    });
    $(this).addClass('selected');
  }
});

你可以在这里试试。

代码语言:javascript
复制
var options = {
  valueNames: [ 'name', 'born' ]
};

var userList = new List('users', options);


$('.filter-1986').on('click',function(){
  var $text = $(this).text();
  if($(this).hasClass( 'selected' )){
    userList.filter();
    $(this).removeClass('selected');
  } else {
    userList.filter(function(item) {
      return (item.values().born == $text);
    });
    $(this).addClass('selected');
  }
});
代码语言:javascript
复制
.list {
  font-family:sans-serif;
  margin:0;
  padding:20px 0 0;
}
.list > li {
  display:block;
  background-color: #eee;
  padding:10px;
  box-shadow: inset 0 1px 0 #fff;
}
.avatar {
  max-width: 150px;
}
img {
  max-width: 100%;
}
h3 {
  font-size: 16px;
  margin:0 0 0.3rem;
  font-weight: normal;
  font-weight:bold;
}
p {
  margin:0;
}

input {
  border:solid 1px #ccc;
  border-radius: 5px;
  padding:7px 14px;
  margin-bottom:10px
}
input:focus {
  outline:none;
  border-color:#aaa;
}
button {
  padding:8px 30px;
  border-radius: 6px;
  border:none;
  display:inline-block;
  color:#fff;
  text-decoration: none;
  background-color: #28a8e0;
  height:30px;
}
.selected{
  background-color:#1b8aba;
}
button:hover{
  text-decoration: none;
  background-color:#1b8aba;
}
button:focus {
  outline:none;
}
button:after {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-bottom: 5px solid transparent;
  content:"";
  position: relative;
  top:-10px;
  right:-5px;
}
.sort.asc:after {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #fff;
  content:"";
  position: relative;
  top:13px;
  right:-5px;
}
.sort.desc:after {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-bottom: 5px solid #fff;
  content:"";
  position: relative;
  top:-10px;
  right:-5px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="users">
  <input class="search" placeholder="Search" />
  <button class="sort" data-sort="name">
    Sort by name
  </button>
  <button class="filter-1986">1986</button>

  <ul class="list">
    <li>
      <h3 class="name">Jonny Stromberg</h3>
      <p class="born">1986</p>
    </li>
    <li>
      <h3 class="name">Jonas Arnklint</h3>
      <p class="born">1985</p>
    </li>
    <li>
      <h3 class="name">Martina Elm</h3>
      <p class="born">1986</p>
    </li>
    <li>
      <h3 class="name">Gustaf Lindqvist</h3>
      <p class="born">1983</p>
    </li>
  </ul>

</div>
<script src="//cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24852928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档