javascript - jQuery addClass 和 toggleClass 不起作用
问题描述
我使用数据表创建了一个表,并添加了一个“更多”按钮来触发一个迷你下拉菜单。此按钮及其下拉内容完美显示,但是,当我尝试使用 jQueryaddClass()
或toggleClass()
函数在任何时候单击该按钮时明确显示该按钮处于活动状态时,该按钮拒绝添加或切换“活动”类。
jQuery
$( "#dropdownDatatableButton" ).click(function() {
$( "#dropdownDatatableButton" ).addClass( "active" );
});
CSS
#datatablesDropdown .active {
background: rgb(37, 56, 88) !important;
color: rgb(255, 255, 255);
}
datatables
{ data: null,
render: function ( data, type, row, meta ) {
return '<div class="dropdown" id="datatablesDropdown">'
+ '<span class="material-icons btn datatables-more-btn" type="button" id="dropdownDatatableButton"' <!--here is the button that triggers the dropdown-->
+ 'data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">more_horiz</span>'
+ '<div class="dropdown-menu dropdown-menu-right datatables-dropdown-inner"'
+ ' aria-labelledby="dropdownDatatableButton">'
+ '<ul>'
+ '<li><a href="' + data.url.toLowerCase() + '/settings' + '">Board settings</a></li>'
+ '<li><a class="btn btn-link btn-sm text-left">Delete</a></li>'
+ '</ul>'
+ '</div>'
+ '</div>';
},
},
],
解决方案
ID 在页面中必须是唯一的,并且您还需要委托事件侦听器,因为插件会重新呈现页面更改、搜索、排序等。
此外,您希望针对事件发生的特定按钮
尝试:
$('table').on('click', ".dropdownDatatableButton" ,function() {
$(this).toggleClass( "active" );
});
并在 html 和 css 中将 ID 更改为 class。
请参阅:了解事件委托
推荐阅读
- excel-formula - 可以编辑 =Sumproduct 以使其始终引用表格的第一行吗?
- java - 无法使用 Guice 绑定 TypeLiteral
- php - 如果转发器数组中的第一项,则 ACF 添加类
- apache-spark - 使用 Hortonrworks shc 核心库在 Hbase 中加载数据时出错
- java - 范围内的每个数字都应该能被 n 整除
- python - python参数解析器为列表类型输入定义变量名
- sql - SQL Access,在查询中连接字段
- ios - Image View 不是一个完美的圆圈
- xslt - XSL:显示当前节点的属性
- oracle - 从另一个表更新一个表时改变触发器表