Jquery ON函数仅在ajax加载时触发一次或两次

时间:2013-03-06 14:49:37

标签: jquery ajax live

我觉得奇怪的是.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()

提前致谢!

1 个答案:

答案 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);
});