首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在失去焦点之前等待单击

在失去焦点之前等待单击
EN

Stack Overflow用户
提问于 2019-06-26 16:18:19
回答 2查看 106关注 0票数 0

我有一个搜索下拉列表,它显示当搜索输入获得焦点时的建议。问题是,我有代码,当这个输入失去焦点时,下拉列表就会关闭。这是我想要的,但问题是,一旦我点击任何建议,框关闭之前,点击是为该建议注册。

我的代码:- html:-

代码语言:javascript
复制
<div id="demo-2">
 <input
   type="search"
   placeholder="Search By Title, Author"
 />
 <div class="autocomplete">
   <mdb-card *ngFor="let book of books" (click)="logger(book.id)">
     <!--some code-->
   </mdb-card>
 </div>
</div>

css:-

代码语言:javascript
复制
#demo-2 input[type="search"]:focus {
  width: 275px;
  color: #000;
  background-color: #fff;
  cursor: auto;

  ~ .autocomplete {
    visibility: visible;
  }
}

.autocomplete {
  height: 350px;
  width: 275px;
  position: absolute;
  visibility: hidden;
  overflow: auto;
}

(节选):-

代码语言:javascript
复制
  logger(id) {
    console.log(id); 
  }

已经做了一天多了。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-26 16:28:02

在TS中创建一个变量isVisible

代码语言:javascript
复制
isVisible = false;

logger(id) {
  console.log(id);
  isVisible = false;
}

hide() {
  isVisible = false;
}

inputClicked() {
  isVisible = true;
}

还有你的HTML:

代码语言:javascript
复制
<div id="demo-2">
 <input
   type="search"
   placeholder="Search By Title, Author" (focusout)="hide()"
 />
 <div class="autocomplete" [ngStyle]="{'visibility':isVisible ? 'visible' : 'hidden'}">
   <mdb-card *ngFor="let book of books" (click)="logger(book.id)">
     <!--some code-->
   </mdb-card>
 </div>
</div>

从CSS中删除visibility属性。

票数 1
EN

Stack Overflow用户

发布于 2019-06-26 16:42:57

~.autocomplete将对元素的同级应用属性。因此,与其将其应用于div,不如将其应用于mdb卡上。

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

https://stackoverflow.com/questions/56777194

复制
相关文章

相似问题

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