Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: JuansT en 20 de Febrero 2017, 17:52

Título: JavaScript. addEventListener, propagación, bubbling, captura. CU01158E
Publicado por: JuansT en 20 de Febrero 2017, 17:52
Buenas, me salen todos los mensajes menos para window, y creo que es porque no es un nodo y por eso no tiene la propiedad nodeName, por lo demás creo que está bien:

Código: [Seleccionar]
<!DOCTYPE html>
<html><head><title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
window.onload = function(){
var elems = document.querySelectorAll('P, div, body, html');
var nodeDocument = document.querySelector('html').parentNode;
for(var i=0;i<elems.length;i++){
elems[i].addEventListener("click",function(){
alert("Soy un nodo tipo: " + this.nodeName + " y estoy burbujeando");
});
}
nodeDocument.addEventListener("click",function(){
alert("Soy un nodo tipo: " + this.nodeName + " y estoy burbujeando");
});
window.addEventListener("click",function(){
alert("Soy un nodo tipo: " + this.nodeName + " y estoy burbujeando");
});
}
</script>
</head>
<body>
<div id="principal">
<div id="secundario">
<div id="terciario">
<p>elemplo de bubbling(burbujeo)</p>
</div>
</div>
</div>
</body>
</html>
Título: Re:JavaScript. addEventListener, propagación, bubbling, captura. CU01158E
Publicado por: bermartinv en 24 de Febrero 2017, 11:18
En el ejercicio solo nos pide que nos muestre los nodos dentro del div que hemos creado.
Como lo has resuelto muestra todos los nodos de la ventana.
No entiendo para que pusiste este evento:
Código: [Seleccionar]
window.addEventListener("click",function(){
alert("Soy un nodo tipo: " + this.nodeName + " y estoy burbujeando");
Prueba el código sin él, y no entendremos en undefined
Saludos  ;)
Título: Re:JavaScript. addEventListener, propagación, bubbling, captura. CU01158E
Publicado por: JuansT en 24 de Febrero 2017, 15:18
En el ejercicio solo nos pide que nos muestre los nodos dentro del div que hemos creado.
Como lo has resuelto muestra todos los nodos de la ventana.
No entiendo para que pusiste este evento:
Código: [Seleccionar]
window.addEventListener("click",function(){
alert("Soy un nodo tipo: " + this.nodeName + " y estoy burbujeando");
Prueba el código sin él, y no entendremos en undefined
Saludos  ;)

Buenas bermartinv, según el enunciado de este temario:

Citar
Crea un documento HTML donde dentro del elemento body tengamos un div con id “principal”, dentro de principal otro div denominado “secundario”, y dentro de secundario otro div con id “terciario”. Dentro de terciario debe existir un párrafo con el texto: Ejemplo de bubbling (burbujeo). Añade eventListeners con el evento click para los párrafos y todos los elementos div, document y window, y una función de respuesta común para todos ellos que emita el mensaje de alerta <<Soy un nodo tipo NombreDelNodo y estoy burbujeando>>.

Ejemplo: al hacer click sobre el texto <<Ejemplo de bubbling (burbujeo)>> deberán empezar a aparecernos mensajes como: Soy un nodo tipo P y estoy burbujenado. Soy un nodo tipo DIV y estoy burbujeando. Soy un nodo tipo DIV y estoy burbujeando…

Según lo que está marcado en rojo entiendo que debo hacer un burbujeo no sólo a los div's sino a todo, por eso añadí el addEventListener a document y window, a window ya sé que iba a dar undefined, yo creo que el enunciado pone que hagamos burbujeo a window para que nos demos cuenta de eso mismo, que window no es un nodo como todo lo demás y por eso no tiene propiedad nodeName.

Saludos
Título: Re:JavaScript. addEventListener, propagación, bubbling, captura. CU01158E
Publicado por: bermartinv en 06 de Marzo 2017, 10:23
Tienes razon JuansT, nos pide el ejercicio mostrar el 'undefined'