将事件处理程序附加到
document
或者任何没有用ajax更新更新的适当父元素。参考
委托事件处理程序
段在
on()
文档页。
例如,更改
$('#test_checkbox input').on('click', function() { //this work perfectly
console.log('enter');
if ($(this).is(":checked")) {
alert('checked');
} else {
alert('not checked');
}
});
到
$(document).on('click','#test_checkbox input', function() { //this work perfectly
console.log('enter');
if ($(this).is(":checked")) {
alert('checked');
} else {
alert('not checked');
}
});
编辑:
根据@wernerpotgieter的建议
文件
而不是
body
. 尽管我添加了一个将事件侦听器附加到文档的示例,但我们应该避免在大型文档上过度使用文档或正文来处理委托事件,并且必须将侦听器附加到尽可能靠近目标元素的位置,以获得更好的性能。