PDA

View Full Version : [Javascript] propagazione eventi


Damage92
01-03-2011, 15:31
Salve!
Non riesco a capire come funziona la propagazione degli eventi. Ho letto questo articolo:
http://www.quirksmode.org/js/events_order.html
ma nella pratica non sembra funzionare!
Ad esempio, in questa pagina:


<html><body>

<div id="nero" style="height:100px; width:100px; background:black; top:0px; left:0px; position:absolute"></div>
<div id="verde" style="height:50px; width:50px; background:green; top:0px; left:0px; position:absolute"></div>

<script type="text/javascript">
nero = document.getElementById("nero");
verde = document.getElementById("verde");

nero.addEventListener("click", function() {alert('nero')}, false);
verde.addEventListener("click", function() {alert('verde')}, false);

</script>
</body></html>


vorrei che cliccando sul div verde, sia eseguita anche la funzione del div nero!
Dovrebbe essere eseguita durante la fase bubbling, ma non funziona!

Qualcuno puņ aiutarmi? Grazie mille! :)

MEMon
01-03-2011, 18:10
Salve!
Non riesco a capire come funziona la propagazione degli eventi. Ho letto questo articolo:
http://www.quirksmode.org/js/events_order.html
ma nella pratica non sembra funzionare!
Ad esempio, in questa pagina:


<html><body>

<div id="nero" style="height:100px; width:100px; background:black; top:0px; left:0px; position:absolute"></div>
<div id="verde" style="height:50px; width:50px; background:green; top:0px; left:0px; position:absolute"></div>

<script type="text/javascript">
nero = document.getElementById("nero");
verde = document.getElementById("verde");

nero.addEventListener("click", function() {alert('nero')}, false);
verde.addEventListener("click", function() {alert('verde')}, false);

</script>
</body></html>


vorrei che cliccando sul div verde, sia eseguita anche la funzione del div nero!
Dovrebbe essere eseguita durante la fase bubbling, ma non funziona!

Qualcuno puņ aiutarmi? Grazie mille! :)

Ci deve essere un padre e un figlio, nel tuo caso sono due div che non hanno niente a che fare l'uno con l'altro.

Damage92
01-03-2011, 18:45
Ci deve essere un padre e un figlio, nel tuo caso sono due div che non hanno niente a che fare l'uno con l'altro.

Grazie mille, non ci sarei mai arrivato!
Non c'č un modo per far propagare un evento tra due elementi separati ma sovrapposti?

MEMon
01-03-2011, 18:47
Grazie mille, non ci sarei mai arrivato!
Non c'č un modo per far propagare un evento tra due elementi separati ma sovrapposti?
Propagare l'evento no.

Damage92
03-03-2011, 14:50
Propagare l'evento no.

Non per forza far propagare l'evento, per quello che serve a me (sto lavorando ad un'estensione per Opera) basterebbe simulare il click su quello che sta sotto il mio div.
Grazie, ciao.