我觉得奇怪的是.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上,我有多个带有“全选”选项的复选框。
点击“全选”后,确实选中了所有复选框。再次点击,它取消选中复选框。嗯,确实有效。但是当我再次点击(第3次)时,它不再起作用了。它似乎只适用于第二次点击。
您可能会注意到,我有alert()
,显示“全选”复选框的值。每当我点击它(第3,第4等)时它似乎都会触发,但检查/取消检查部分不是。
我最近刚刚将我的Jquery版本更新到了最新版本(1.9)。我使用带有.live()
函数的ver(1.7)并将其更改为.on()
,因为最近删除了.live()
。
提前致谢!
答案 0 :(得分:0)
在处理.prop()
属性时,您必须在最新版本的jQuery中使用checked
。
$(document).on('click', '.cbxCheckAll', function(e) {
//alert(this.checked);
console.log(this.checked);
$(this).parents('table').find('input.cbxDelete:checkbox').prop('checked', this.checked);
});