javascript - 下拉列表中每个项目上的按钮

标签 javascript angular button dropdown angular2-template

我有一个下拉列表,我想为列表中的每个项目设置一个按钮。 但是当我点击按钮时,按钮上的焦点 (btn-add-list) 消失了,所以列表也消失了。

我的代码:

<button class="btn-add-list><i class="material-icons">note_add</i></button>
 <ul id="dropdown-add-list">
    <li class="list-item">List 1
       <button (click)="addItemToList('list')">+</button>
     </li>

     <li >List 2
        <button (click)="addItemToList('list')">+</button>
     </li>
 </ul>

CSS:

.btn-add-list:focus ~ #dropdown-add-list{
  display: bloc;
}

#dropdown-add-list{
display:none;
position: relative:;
.....
}

最佳答案

您需要添加 stopPropagation()到您的点击事件,以停止点击事件传播到 li (基本上,当你点击时,只会点击按钮,而不是 li ):

<li class="list-item">List 1
   <button (click)="addItemToList('list');$event.stopPropagation()">+</button>
 </li>

<li >List 2
    <button (click)="addItemToList('list');$event.stopPropagation()">+</button>
</li>

阅读更多关于 stopPropagation() 的信息here .另外,您关闭了 <button>带有 </span> 的标签标记而不是 </button> .

关于javascript - 下拉列表中每个项目上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41753426/

相关文章:

javascript 4 个按钮,2 个工作

javascript - 从网页上的对象隐藏光标

javascript - 退格键和删除按钮不会删除 IE 上文本区域中的字符

javascript - 有没有使用 Angular.js 和 Indexed DB 的好方法?

html - 容器不适合屏幕和 flex-direction : row not working properly

angular - 可选的异步管道或默认

iphone - 在新键盘加载时从数字键盘中删除完成按钮

JavaScript代码结构的最佳实践BP

javascript - 如何在构造函数中加载数据,并在 ngAfterViewInit 中通过 Chartjs 渲染它?

button - Protractor :如何单击按钮直到它不再显示