如何将事件添加到 jQuery 的 on() 回调中?



我试过这个:

$('body').on('click', '.headerCheckbox', function (event) { // Add event here and magic should happen?
    event.stopPropagation(); // event output in firebug: event: [object Object]
    headerCheckboxClicked($(this));
});

这是一个表,其中一列的标题中有一个复选框。我想停止事件冒泡,这样表就不会得到事件,也不会对列进行排序。

我以为这是正确的方式,但在我加上这一行后,桌子仍然完好无损。我在jQuery文档中找不到一个好的例子。

替代解决方案禁用指定列排序的数据表方式。

    table3 = $("#tableComputerPackages").DataTable({
        "order": [[1, "desc"]],
        "columnDefs":
        [
            {
                "targets": 0,
                "orderable": false
            }
        ]
    });

A。沃尔夫想好了这个问题的答案。这是因为我用3个参数版本而不是我习惯的2个参数版本编写了on(),所以我甚至没有想过它

如果您的数据表标题是静态的,您应该能够直接将事件绑定到复选框:

$('.headerCheckbox').on('click', function (event) {
      event.stopPropagation(); 
      headerCheckboxClicked($(this));
});

您的问题是关于委派如何工作,使用事件冒泡(并使用事件目标过滤掉它),所以实际上您在body级别停止了传播,头点击事件已经触发,所以排序方法已经调用。

相关内容

  • 没有找到相关文章

最新更新