Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/10/2013, 11:14
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Si .live ya no funciona en jQuery, que debemos usar?

Lo que pasa es que la idea de on es que lo hagas sobre el selector padre, suponiendo que tienes un html así:
Código HTML:
Ver original
  1. <div id="parent">
  2.       <div class="childs">foo</div>
  3.       <div class="childs">foo</div>
  4.       <div class="childs">foo</div>
  5. </div>

Si antes lo que hacías era por ejemplo:
Código Javascript:
Ver original
  1. $('.childs').live('click', function() {
  2.     $(this).css('background-color', 'red');
  3. });

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
  1. $('#parent').on('click', '.childs', function() {
  2.    $(this).css('background-color', 'red');
  3. });

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.