将单击事件添加到ColVis列表项

时间:2015-07-10 10:35:20

标签: jquery datatables

我正在使用基于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());
            })
        });

2 个答案:

答案 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