javascript - 如何使用jquery检测对下拉列表内的按钮的点击
问题描述
我在一件非常简单的事情上遇到了麻烦。我在下拉列表中有两个按钮,当用户点击它们时我无法检测到。其余的按钮效果很好,少了这两个。
按钮是:
<div class="btn-group">
<button type="button" class="btn btn-secondary btn-sm dropdown-toggle" data-toggle="dropdown">Nodes</button>
<ul class="dropdown-menu" id="NodeFilters">
<button type='button' class='btn btn-secondary btn-sm' id='allFilter'>All</button>
<button type='button' class='btn btn-secondary btn-sm' id='cleanFilter'>Clean</button>
</ul>
</div>
我的功能是:
//This function controls if some button is clicked
function btnController(){
$('.btn').click(function(){
let id_btn = $(this).attr("id");
console.log(id_btn);
if(id_btn == 'allFilter' | id_btn == 'cleanFilter'){
alert('sss')
}
});
}
$(document).ready(function() {
btnController();
} );
当我单击其余按钮时,将console.log(id_btn);
打印id
按钮的。但是当我单击下拉列表中的这两个按钮时,什么也没有发生。为什么会这样?
注意:当我单击这些按钮时,下拉菜单总是关闭。
有人可以帮助我吗?非常感谢你!
解决方案
像这样使用事件委托:
$(function(){
$(document).on('click', '.btn', function(){
let id_btn = $(this).attr("id");
console.log(id_btn);
if(id_btn === 'allFilter' || id_btn === 'cleanFilter'){
alert('sss')
}
})
})
推荐阅读
- reactjs - 在 React 中,你可以改变 this.state 但后面跟着 this.setState() 吗?
- javascript - socket.io.js 文件在哪里?
- mysql - 选择具有最新消息的用户之间的所有线程
- c# - 如何在 EF Core 中保留从多个请求中获得的数据?
- angular - Angular 8、9:如何阻止在页面中多次使用的单个可重用组件(ng-block-ui 集成)| IE。创建多个实例?
- javascript - 如何更新每个活动视频时间?
- android - 计算日期后 3 个月 - Android
- java - CORS 预检请求未在选项请求方法后进行调用
- java - 如何在android中将边距设置为主ConstraintView?
- r - R中的求和函数没有给出预期的答案