la clase en el html incluido no puede acceder a la función en el archivo principal html

Tengo un mainfile.html con el siguiente contenido

<html> 
  <head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script> 
    $(function(){
      $("#includedContent").load("d.html"); 

      $(".alertclass").click(function(){
         alert('some c load action');
      });

    });
    </script> 
  </head> 

  <body> 
    <a class="alertclass" href="javascript:void(0);"> parent clicks heret </a>
    <br/>
     <div id="includedContent" ></div>

  </body> 
</html>

y mi archivo "d.html" tiene contenido

<div> <br/>
<a href="javascript:void(0);" class="alertclass">the child clicks here</a>
</div>

pero la clase "alertclass" no parece funcionar cuando hago clic en el enlace del contenido incluido en la página del niño. ¿Hay alguna manera de hacer que funcione también para la página secundaria incluida?

PD: traté de usar "en vivo" pero arroja un error

"Error de tipo no detectado: el objeto [objeto Objeto] no tiene método 'en vivo'"

Estoy buscando una solución aparte de "en vivo". Gracias !!

preguntado el 02 de diciembre de 13 a las 08:12

1 Respuestas

live arrojó el no method error porque se eliminó de jQuery en la versión 1.9. Ha sido reemplazado por el uso on con un selector de delegado.

Su problema se debe a que está intentando adjuntar el evento a .alertClass antes de que el contenido haya terminado de cargarse. Intente colocar el enlace del evento en la devolución de llamada de load:

$("#includedContent").load("d.html", function() {
    $(".alertclass").click(function(){
        alert('some c load action');
    });
}); 

Alternativamente, como mencioné, podrías usar on con un selector de delegado:

$("#includedContent").load("d.html");
$(document).on('click', ".alertclass", function(){
    alert('some c load action');
});

Respondido el 02 de diciembre de 13 a las 09:12

La sugerencia 'on' hace que esté disponible solo para la clase secundaria. El primero está cerca de lo que estaba buscando, - Arquero

Genial, la alternativa que proporcionaste es lo que estaba buscando. porque, si uso el primero, tendría que hacerlo para cualquier otra página que esté cargando, y si todas contienen la clase que estoy usando. - Arquero

@Archer Me alegro de ayudar. - Rory McCrossan

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.