我正在使用基于Web的工具,使用asp.net和Javascript与Jquery实现各种表,并使用户友好。为此,我使用可爱的Datatables插件及其扩展名ColVis来隐藏选定的列。我现在要做的是添加另一个.click事件来列出ColVis生成的列表中的项目,但是我在使用Jquery选择正确的元素以附加函数时遇到了麻烦。
这是ColVis生成的HTML。
<ul class="ColVis_collection ui-buttonset ui-buttonset-multi" style="...">
<li class="colVis_select ui-button ui-state-default">...</li>
<li class="colVis_select ui-button ui-state-default">...</li>
...
</ul>
等等。
我试过的是:
$(".ul").on("click","li" , function (event) {
Cookies.set('columnsWebform', readingHeaders());
})
尽可能一般。但我仍然无法回应点击。
非常感谢任何帮助。
使用解决方案进行编辑
正如乔尔指出选择器是错误的。但这不是整个问题。在按下按钮之前,不会生成列表的HTML代码。
<button class="ColVis_Button ColVis_MasterButton">
因此,将clickevent监听器的创建连接到按下此按钮解决了这个问题。
$(".ColVis_MasterButton").click(function () {
$("ul").on("click", "li", function () {
Cookies.set('columnsWebform', readingHeaders());
})
});
答案 0 :(得分:2)
这是可行的解决方案。首先,选择器需要是标签ul而不是类ul。
$("ul").on("click", "li", function () {
Cookies.set('columnsWebform', readingHeaders());
})
但这并没有解决整个问题。 在按下按钮之前,不会生成列表的HTML代码。
<button class="ColVis_Button ColVis_MasterButton">
因此将clickevent监听器的创建连接到按下此按钮解决了这个问题。
$(".ColVis_MasterButton").click(function () {
$("ul").on("click", "li", function () {
Cookies.set('columnsWebform', readingHeaders());
})
});
答案 1 :(得分:1)
使用$('ul')
。
目前,您使用ul
而非.ul
标记选择了课程ul
。