Lo que pasa es que la idea de on es que lo hagas sobre el selector padre, suponiendo que tienes un html así:
Si antes lo que hacías era por ejemplo:
Código Javascript
:
Ver original$('.childs').live('click', function() {
$(this).css('background-color', 'red');
});
Al insertar/cambiar/borrar ".childs" usando AJAX o algún otro método funcionaba, no era lo adecuado, lo correcto es usar delegate:
Código Javascript
:
Ver original$('#parent').on('click', '.childs', function() {
$(this).css('background-color', 'red');
});
Así el evento solamente cae en el parent, y no tiene que estar inspeccionando usando live lo cual es más lento, es por eso que el uso de live() ya no se recomienda, porque traía una carga y lentitud que on ya no tiene.
Saludos.