首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在搜索模式下显示结果

仅在搜索模式下显示结果
EN

Stack Overflow用户
提问于 2018-10-12 11:39:37
回答 1查看 323关注 0票数 0

我使用一个库李斯特来执行模糊搜索,并且运行得很好,但只有一个问题,我希望结果只显示用户搜索时的结果,而不是显示文档中大多数示例显示的所有结果。

我找不到我正在寻找的任何例子,是否清单is有一个选项,使结果只能使用一种搜索模式?

HTML:

代码语言:javascript
复制
<div id="sandbox">
    <input class="form-control form-control-lg fuzzy-search" placeholder="Search" />     
    <ul class="list" id="list"></ul>
</div>

JS:

代码语言:javascript
复制
var options = {
    valueNames: [ 
        'productTitle', 
        'productBrand', 
        { name: 'productImage', attr: 'src' }
    ],
    item: '<li>
             <img src="" class="img-fluid productImage" style="height: 100px;" alt="#" />
             <h3 class="productTitle"></h3>
             <p class="productBrand"></p>
           </li>'
};

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

$.getJSON( "data.json", function( data ) {
    userList.add(data);
});
EN

回答 1

Stack Overflow用户

发布于 2018-10-25 13:36:41

好的,所以我不确定我明白你想要什么,但我会试一试,因为你还没有得到一个答案。

我认为您想要的:默认情况下,列表是隐藏的。当用户聚焦搜索字段时,列表将显示出来。当焦点丢失时,列表将再次隐藏。

您可以使用一些js来解决这个问题(您可以使用jquery作为选择器和隐藏() show()方法):

HTML:

代码语言: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="//cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script>

联署材料:

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

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

// Show/hide on focus
var searchField = document.getElementsByClassName('search')[0];
var listDiv = document.getElementsByClassName('list')[0];

// Hide the list by default 
listDiv.style.visibility = 'hidden';

document.addEventListener('DOMContentLoaded', function() {
    searchField.addEventListener('focus', function() {
        // Search input focused
      listDiv.style.visibility = 'visible';
    });
});

document.addEventListener('DOMContentLoaded', function() {
    searchField.addEventListener('focusout', function() {
        // Search input not focused
      listDiv.style.visibility = 'hidden';
    });
});

下面是一个指向码页的链接,这个链接是基于另外一个listjs网站的例子。

希望这有帮助,干杯!

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

https://stackoverflow.com/questions/52778748

复制
相关文章

相似问题

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