la clase en el html incluido no puede acceder a la función en el archivo principal html
Frecuentes
Visto 97 veces
4
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 !!
1 Respuestas
3
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
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript jquery html dom or haz tu propia pregunta.
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