Tema: problemas
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/03/2012, 17:59
Avatar de Naahuel
Naahuel
 
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 14 años
Puntos: 192
Respuesta: problemas

@3nrlc: Es perfectamente válido. El método .html() puede aceptar una función. La función debe retornar un texto html para que el método lo utilice.

@alex_ore: El problema es claro. La función para el evento "click" se la asignás sólo a los elementos que existen ese momento. Los elementos nuevos no tienen por qué heredar ese tipo de cosas. Sin embargo jQuery tiene el método .delegate(), que sirve para justamente eso:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. div { color:blue; font-size:18px; }
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4. </head>
  5. <div id="nav2">
  6.     <ul id="2">
  7.         <li><a href="#" >Inicio</a></li>
  8.         <li><a href="#" >Prductos</a></li>
  9.         <li><a href="#" >Catalogo</a></li>
  10.     </ul>
  11. </div>
  12.  
  13. <button id="nombre" name="" title="nose" >Gen valor</button>
  14.  
  15.     $(document).ready(function(e) {
  16.         $('#nav2').delegate('li a','click',function(e){
  17.             alert('Funciona el evento');
  18.             $("#nav2").html( function (index, html) {  
  19.                 return "<ul id='2'> <li><a href='#'>Precios</a></li><li>" + " <a href='#' >El mas vendido</a></li> <li><a href='#' >Mi carrito</a></li></ul>"; 
  20.             }) ;
  21.             e.preventDefault();
  22.         });
  23.     });
  24. </body>
  25. </html>

.delegate() debe ser asignado a un elemento contenedor de los elementos a los que querés asignar el evento. El primer parámetro es el selector dentro de ese contenedor, el segundo el evento y el tercero la función.

Ahora los elementos nuevos también tienen la función asignada al evento.
__________________
nahueljose.com.ar