如何向 jQuery 的 on() 回调添加事件?
How to add an event to jQuery's on() callback?
我试过这个:
$('body').on('click', '.headerCheckbox', function (event) { // Add event here and magic should happen?
event.stopPropagation(); // event output in firebug: event: [object Object]
headerCheckboxClicked($(this));
});
它是一个 table,我在其中一列的 header 中有一个复选框。我想停止事件冒泡,这样 table 就不会收到事件,因此它不会对列进行排序。
我认为这是正确的方法,但 table 添加该行后的静止图像排序。我在 jQuery Documentation.
中找不到合适的示例
替代解决方案 数据table 方法我禁用了对指定列的排序。
table3 = $("#tableComputerPackages").DataTable({
"order": [[1, "desc"]],
"columnDefs":
[
{
"targets": 0,
"orderable": false
}
]
});
一个。沃尔夫想到了这个问题的答案。这是因为我用 3 个参数版本而不是我习惯的 2 个参数版本编写了 on(),所以我什至没有考虑它。
如果您的数据表 header 是静态的,您应该能够直接将事件绑定到复选框:
$('.headerCheckbox').on('click', function (event) {
event.stopPropagation();
headerCheckboxClicked($(this));
});
你的问题是关于委派如何工作,使用事件冒泡(并使用事件目标过滤掉它),所以实际上你在 body
级别停止传播,header 点击事件已经触发,所以排序方法已经调用。
我试过这个:
$('body').on('click', '.headerCheckbox', function (event) { // Add event here and magic should happen?
event.stopPropagation(); // event output in firebug: event: [object Object]
headerCheckboxClicked($(this));
});
它是一个 table,我在其中一列的 header 中有一个复选框。我想停止事件冒泡,这样 table 就不会收到事件,因此它不会对列进行排序。
我认为这是正确的方法,但 table 添加该行后的静止图像排序。我在 jQuery Documentation.
中找不到合适的示例替代解决方案 数据table 方法我禁用了对指定列的排序。
table3 = $("#tableComputerPackages").DataTable({
"order": [[1, "desc"]],
"columnDefs":
[
{
"targets": 0,
"orderable": false
}
]
});
一个。沃尔夫想到了这个问题的答案。这是因为我用 3 个参数版本而不是我习惯的 2 个参数版本编写了 on(),所以我什至没有考虑它。
如果您的数据表 header 是静态的,您应该能够直接将事件绑定到复选框:
$('.headerCheckbox').on('click', function (event) {
event.stopPropagation();
headerCheckboxClicked($(this));
});
你的问题是关于委派如何工作,使用事件冒泡(并使用事件目标过滤掉它),所以实际上你在 body
级别停止传播,header 点击事件已经触发,所以排序方法已经调用。