【问题标题】:Button on each item in drop down list下拉列表中每个项目上的按钮
【发布时间】:2017-06-04 20:08:00
【问题描述】:

我有一个下拉列表,我希望列表中的每个项目都有一个按钮。 但是当我单击按钮时,按钮 (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:;
.....
}

【问题讨论】:

    标签: javascript angular button dropdown angular2-template


    【解决方案1】:

    您需要将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 的信息。此外,您使用&lt;/span&gt; 标签而不是&lt;/button&gt; 关闭了&lt;button&gt; 标签。

    【讨论】:

    • 我想在不关闭下拉菜单的情况下多次单击按钮。我放了 $event.stopPropagation() 但它不起作用。但是谢谢,我发现我需要使用 (mousedown)=false" 来停止传播并且不要失去对父按钮的关注
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多