1

我觉得很奇怪,该.on()函数在 ajax 加载时只触发一次/两次事件。

这是一个示例代码:

$(document).on('click', '.cbxCheckAll', function(e) {
alert(this.checked);
$(this).parents('table').find('input.cbxDelete:checkbox').attr('checked', this.checked);
});

场景:所以基本上,我有一个包含用户列表的下拉列表。在下拉列表中选择用户后,它会立即通过 ajax 在 div 上加载所选用户的信息。然后在那个 div 上,我有多个带有“全选”选项的复选框。

单击“全选”后,它确实选择了所有复选框。再次单击,它没有选中复选框。嗯,它确实奏效了。但是当我再次点击(第三次)时,它不再起作用了。似乎它只适用于第二次点击。

您可能会注意到,我有一个alert()显示“全选”复选框的值。每次单击它(第 3 次、第 4 次等)时似乎都会触发,但检查/取消检查部分不是。

我最近刚刚将我的 Jquery 版本更新到最新版本(1.9)。我正在使用带有该.live()功能的版本(1.7)并将其更改为.on()因为.live()最新版本已被删除。

提前致谢!

4

1 回答 1

0

.prop()在处理checked 属性时,您必须使用最新版本的 jQuery 。

$(document).on('click', '.cbxCheckAll', function(e) {
    //alert(this.checked);
    console.log(this.checked);
    $(this).parents('table').find('input.cbxDelete:checkbox').prop('checked', this.checked);
});
于 2013-03-06T15:14:01.533 回答