我覺得很奇怪,.on()
函數在ajax負載上僅觸發一次/兩次事件。Jquery 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)和.live()
函數,並將其更改爲.on()
。
在此先感謝!
確保使用[''console.log()'](http://stackoverflow.com/questions/4743730/what-is-console-log-and-how-do-i-use-它)而不是'alert()' – Dom 2013-03-06 14:51:47
@Dom聲明,alert保留線程,console.log讓它繼續前進。 – 2013-03-06 14:54:42
(可能)與您的問題無關,但「.parents('table')」選擇此元素的每個表的祖先。如果你嘗試「.closest('table')」,你只能選擇最接近的'表'祖先。 – DoXicK 2013-03-06 14:54:45